2013-01-30 25 views
5

Jak mogę dokonać pogrubienie i pochylenie się Oddział Nazwa:, Oddział nr:, Oddział Telefon nr: i Branch Timings: w kodzie Java? Dane bazy danych powinny pozostać w prostym formacie. Te cztery to tylko ich nagłówki. W tym (bieżącym) przypadku drukuje/wyświetla całe dane w prostym formacie, a użytkownik ma problem z odczytaniem tych danych.Jak mogę pogrubić i podkreślić ciąg znaków w kodzie Android?

String branchInfoString = "" ; 

// fetching all the database data in a list 
List<BranchInfo> dbDataList = _dbHandler.getAllInfo() ; 

// getting that data into a string that will be displayed in TextView 
for(BranchInfo aBranch : dbDataList){ 

branchInfoString = branchInfoString + 

      "Branch Name: " + aBranch.getBranchName() + "\n" + 
      "Branch No: " + aBranch.getBranchNo() + "\n" + 
      "Branch Phone No: " + aBranch.getBranchPhone() + "\n" + 
      "Branch Timings: " + aBranch.getBranchTiming() + "\n" + 

      "\n --------------------------------------- \n \n" ; 

} 

// showing all the branch data in a text_view 
setContentView(R.layout.db_branch_list) ; 
TextView dbDataView = (TextView)findViewById(R.id.db_branch_list) ; 
dbDataView.setText(branchInfoString) ; 

Odpowiedz

9

Tak, możesz ozdobić tekst w swoim TextView za pomocą znaczników HTML. Dotyczy to nie tylko kursywy i pogrubienia, ale także koloru czcionki i innych rzeczy. Coś takiego:

branchInfoHtmlString = branchInfoString + 

     "<b>Branch Name: " + aBranch.getBranchName() + "</b>\n" + 
     "<i>Branch No: " + aBranch.getBranchNo() + "</i>\n" + 
     "<font >Branch Phone No: " + aBranch.getBranchPhone() + "</font>\n" + 
     "<font color="#FFDDDDDD">Branch Timings: " + aBranch.getBranchTiming() + "</font>\n" + 

     "\n --------------------------------------- \n \n" ; 

} 

// showing all the branch data in a text_view 
setContentView(R.layout.db_branch_list) ; 
TextView dbDataView = (TextView)findViewById(R.id.db_branch_list) ; 
dbDataView.setText(Html.fromHtml(branchInfoHtmlString)) ; 

Nie wszystkie znaczniki HTML są obsługiwane, można znaleźć listę tagów here i here.

0

można sformatować ciąg i ustawić go w TextView

String some_string = Html.fromHtml(YourHTMLFromattedString) 
dbDataView.setText(some_string); 
0

użycie Html.fromHtml(String source) i HTML <b></b> i <i></i> tag pokazując jakiś tekst w pogrubienie i kursywa jak

for(BranchInfo aBranch : dbDataList){ 

branchInfoString = branchInfoString + 

      "<b><i>Branch Name: </i></b>" + aBranch.getBranchName() + "\n" + 
      "<b><i>Branch No: </i></b>" + aBranch.getBranchNo() + "\n" + 
      "<b><i>Branch Phone No: </i></b>" + aBranch.getBranchPhone() + "\n" + 
      "<b><i>Branch Timings: </i></b> " + aBranch.getBranchTiming() + "\n" + 

      "\n --------------------------------------- \n \n" ; 

} 

//your code ... 

dbDataView.setText(Html.fromHtml(branchInfoString)) ; 
4

Korzystanie HTML treść do sformatowania tekstu, na przykład:

branchInfoString = branchInfoString + 

     "<b><i>Branch Name: </i></b>" + aBranch.getBranchName() + "\n" + 
     "Branch No: " + aBranch.getBranchNo() + "\n" + 
     "Branch Phone No: " + aBranch.getBranchPhone() + "\n" + 
     "Branch Timings: " + aBranch.getBranchTiming() + "\n" + 

     "\n --------------------------------------- \n \n" ; 

dbDataView.setText(Html.fromHtml(branchInfoString)); 
+1

dzięki, ......... to działało. "\ n" nie działa, myślę, że powinienem użyć znacznika
tutaj – Innovator

+0

+1 to jest poprawne –

+0


znacznik zadziałał dla nowej linii z dnia
Innovator

0

Będziesz musiał utworzyć tableView z wieloma wierszami, które zostaną dodane w czasie wykonywania. Pierwszy wiersz zawierałby nagłówki kolumn.

Przykł.

<TableLayout android:id="@+id/class"> 
    <TableRow android:id="@+id/headers"> 
     <TextView android:id="@+id/branch_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:typeface="serif"> 
     <TextView android:id="@+id/branch_no" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:typeface="serif"> 
     <TextView android:id="@+id/branch_phone_no" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:typeface="serif"> 
     <TextView android:id="@+id/branch_timings" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:typeface="serif"> 
    </TableRow> 
</TableLayout> 

i dodać dane do tej tabeli, w klasie, należy dodać coś takiego:

TableLayout layout =  (TableLayout)LayoutInflater.from(canvas.getContext()).inflate(R.layout.class, null); 

TableRow headerRow = (TableRow) layout.findViewById(R.id.header); 
TextView branchName = (TextView) layout.findViewById(R.id.branch_name); 
TextView branchNo = (TextView) layout.findViewById(R.id.branch_no); 
TextView branchPhoneNo = (TextView) layout.findViewById(R.id.branch_phone_no); 
TextView branchTimings = (TextView) layout.findViewById(R.id.branch_timings); 

branchName.setText("Branch Name"); 
branchName.setTypeFace(null, Typeface.BOLD); 

branchNo.setText("Branch No"); 
branchNo.setTypeFace(null, Typeface.BOLD); 

branchPhoneNo.setText("Branch Phone No"); 
branchPhoneNo.setTypeFace(null, Typeface.BOLD); 

branchTimings.setText("Branch Timimgs"); 
branchTimings.setTypeFace(null, Typeface.BOLD); 


for (int i=0; i<noOfRows; i++) { 
    TableRow dataset = new TableRow(context); 
    TextView branchName = new TextView(context); 
    TextView branchNo = new TextView(context); 
    TextView branchPhoneNo = new TextView(context); 
    TextView branchTimings = new TextView(context); 

    branchName.setText("SampleBranchName" + i); 
    branchNo.setText("SampleNumber" + i); 
    branchPhoneNo.setText("SamplePhoneNumber" + i); 
    branchTimings.setText("SampleTimings" + i); 

    dataset.addView(branchName); 
    dataset.addView(branchNo); 
    dataset.addView(branchPhoneNo); 
    dataset.addView(branchTimings); 

    layout.addView(dataset); 
} 
+0

Czy to dynamicznie wyświetla wartości? Mam na myśli, powiedzmy, mamy 1000-branchNames, 1000-branchNo, .... w bazie danych. Czy to drukuje wszystkie dane poniżej drugiego? Próbowałem tylko , ale wydrukowano każdą nową wartość na poprzednim :) – Innovator

+0

To, co by to zrobiło, to dodanie nowego wiersza tabeli dla każdego rekordu. A więc to nie przesadziłoby na poprzednim :) Jest to podstawowy sposób na zrobienie tego. Pls zachęcamy do oznaczenia tego ans. jako przydatne/poprawne, jeśli ci pomogło. – lokoko

Powiązane problemy