0

TextViewループに動的に追加しました。ボタンをクリックすると、テキスト ビューの既存のテキストをクリアし、他のテキストを設定したいと考えています。これどうやってするの?

これは私の現在のコードです:

ArrayList<String> Cheif_ComplaintNew = new ArrayList<String>();
int cc_Arraylist_length = Cheif_ComplaintNew.size();
android.widget.TextView cc_new  = new android.widget.TextView(getApplicationContext());

for(int i=0; i<cc_Arraylist_length; i++)
{
    cc_new.setId(i);
    cc_new.setText(Cheif_ComplaintNew.get(i)); 
    cc_new.setTextColor(getResources().getColor(R.color.black));
    cc_new.setTypeface(null,android.graphics.Typeface.ITALIC);
    cc_new.setTextSize(14);
    cc_linearNew.addView(cc_new);
    System.out.println("id"+i);
}

ボタンをクリックすると、リストがクリアされ、新しいデータが保存されます。古いデータをクリアして、同じテキスト ビューに新しいデータを表示したい。

4

4 に答える 4

1

作成時にテキストボックスにテキストを追加するか、作成時にクラス変数を割り当てて、後でテキストを追加できます。

 TextView dynamicTextView;

 ...

 private void CreateNewTextView()
 {
     dynamicTextView = Your New Text View;
 }
 ...
 private void ChangeTheText()
 {
     dynamicTextView.SetText("new value");
 }

複数の TextView がある場合は、TextView のクラス レベルの一般的なリストを作成し、それらをリストに追加して後で呼び出すことができます。

また、すべての TextView のマップを作成して、それらのキーでも呼び出すことができます。

于 2013-07-24T08:40:26.027 に答える
0

レイアウトに動的に追加する必要がある TextView の数によって異なります。

前述のコードによると、 TextViews はレイアウトに追加されCheif_ComplaintNew.size()ません。「0」が返されるため、ループは実行されません。

  1. TextView を 1 つだけ追加する必要がある場合は、クラス レベルの TextView 変数を持つという Daniel の回答に同意します。
  2. 複数の TextView があり、使用する ID がわかっている場合は、Activity で呼び出してその TextView をいつでも取得できます。findViewById("ID_OF_THE_TEXTVIEW_NEEDED")
于 2013-07-24T08:47:01.987 に答える
0

cc_newに追加する前にcc_linearNew、次のようにタグを設定できると思いますcc_new.setTag(i)cc_linearNew.findViewByTag(i)ボタンがクリックされると、ループ内でそれらの TextView を見つけて、新しいデータをそれらに設定できます。

于 2013-07-24T08:40:53.613 に答える