2013-09-24 3 views
-1

Как назначить двойное значение TextView? Это код:Назначить двойное значение TextView?

if(condition()) { 

    TV=(TextView)view.findViewById(R.id.textView); 
    TV.setText(Html.fromHtml("<b>TEXT 01 </b>")); 

} 
else { 
    TV=(TextView)view.findViewById(R.id.textView); 

    TV.setText(Html.fromHtml("<b>TEXT 02</b>")); 

} 

if(condition) { 
    TV=(TextView)view.findViewById(R.id.textView); 

    TV.setText(Html.fromHtml("TEXT 03")); 

} 
else { 
    TV=(TextView)view.findViewById(R.id.textView); 

    TV.setText(Html.fromHtml("TEXT 04")); 

} 

Если я запустить приложение и оба условия возврата, как я представляю себе только последний написанные слова TEXT 03. Как просмотреть и TEXT 01?

+0

Вы говорите, набор текста 01, а затем снова вы говорите Text 03, какой из них вы действительно хотите на самом деле? – kosa

+0

Вы хотите добавить «ТЕКСТ 03» в «ТЕКСТ 01», поэтому конечный результат аналогичен «TEXT 01 TEXT 02'? – Izmaki

ответ

0

Вы используете тот же TextView. Вам нужно создать второй TextView или добавить String, который вы хотите.

if(condition()) { 

     TV=(TextView)view.findViewById(R.id.textView); // each time you call this you reintializ 
                // the TextView then set new text to it 
                // you don't append the text 
     TV.setText(Html.fromHtml("<b>TEXT 01 </b>")); 

    } 
    else { 
     TV=(TextView)view.findViewById(R.id.textView); 

     TV.setText(Html.fromHtml("<b>TEXT 02</b>")); 

    } 

    if(condition) { 
     TV=(TextView)view.findViewById(R.id.textView); 

     TV.setText(Html.fromHtml("TEXT 03")); 

    } 
    else { 
     TV=(TextView)view.findViewById(R.id.textView); 

     TV.setText(Html.fromHtml("TEXT 04")); 

    } 

Чтобы сделать это гораздо проще инициализировать TextView раз и добавить текст во втором состоянии

TV=(TextView)view.findViewById(R.id.textView); 
if (condition()) 
{ 
    TV.setText(Html.fromHtml("<b>TEXT 01 </b>")); 
else 
{ 
    TV.setText(Html.fromHtml("<b>TEXT 02</b>")); 
} 

if (condition) 
{ 
    TV.append(Html.fromHtml("TEXT 03")); 
} 
else 
{ 
    TV.append(Html.fromHtml("TEXT 04")); 
} 
0

Вы можете увидеть только «TEXT 03» на TextView, потому что вы звоните SetText ("TEXT 03 «) после того, как SetText (TEXT 01»), если они оба являются истинными, то TEXT 03 перезаписывает TEXT 01. Вы должны изменить логику, например:

if (condition1 && condition3) { 
    tv.setText("TEXT 03" + "TEXT 01"); 
} 
Смежные вопросы