0

こんにちは、

Androidでテーブルを作成したいのですが、多くの行が含まれている必要があります。各行には 4 つの列があり、任意のビューをクリックすると、ビューの onClick イベントを統合したいと考えています。私は要件に似たものを開発しましたが、クリックビューを取得できませんでした.これが私のコードです:

LinearLayout lLayout1= null; LinearLayout main_lLayout= null; LinearLayout lLayout2= null; TextView myText[] = new TextView[12];

LinearLayout myLayout[] = new LinearLayout[12];
@Override
public void onCreate(Bundle icici) {
    super.onCreate(icici);

    main_lLayout = new LinearLayout(this);

    main_lLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                                           LayoutParams.WRAP_CONTENT));
    main_lLayout.setOrientation(LinearLayout.VERTICAL);
    int k = 0;
    for(int i=0;i<4;i++) {
        myLayout[i] = new LinearLayout(this);

        for(int j=0;j<4;j++) {
            myText[j] = new TextView(this);
            myText[j].setText("asdf"+i+j);
            myText[j].setPadding(0, 0, 20, 10);
            myText[j].setClickable(true);
            myText[j].setId(k);
            myText[j].setOnClickListener(this);
            k++;
            System.out.println(k);
            myLayout[i].addView(myText[j]);

        }       
        main_lLayout.addView(myLayout[i]);

    }       
    setContentView(main_lLayout);
}

@Override
public void onClick(View v) {

    System.out.println(myText[0].getText());
    System.out.println(myText[10].getText());

}
4

1 に答える 1

0

そこにはいくつかの悪い配列管理があります... 16 個の TextView をインスタンス化していますが、それらを myText の最初の 4 つの要素にのみ割り当てています。これを修正すると、クリック ハンドラが期待どおりに呼び出されることがわかります。

于 2010-10-26T13:13:13.933 に答える