1

チェックボックスと2つのテキストビューを含む行があります

このコードを使用してカスタム xml レイアウトを繰り返していますが、問題なく動作しています

しかし、行の各コンポーネントの各IDを知りたいです(チェックボックスと編集1のIDと編集2のID)

だから私は彼らと一緒に働くことができます。

ids のこのインスタンスを作成するには、for ループも必要です。

私のQを明確にするために、次のようにしたい:

for ( int i = 0 ; i < 60 ; i++ ){

CheckBox "auto name here " = new (CheckBox) findViewById(R.id."the id of the current item in rep.xml layout or row ");

"auto name here".setChecked(true);

そしてすっごく...

forループで行を作成するための私のコード:

for (int i = 0; i<60 ; i++ ){

LayoutInflater  inflater =    (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = (View) inflater.inflate(R.layout.rep, null);

tl.addView(view); // tl is table-layout instance 
}
4

2 に答える 2

1

60 行を追加する必要がある場合は、ループと TableLayout を使用しないでください。

代わりに AdapterView を Adapter とともに使用して、データを保持し、行を膨張させる必要があります。このようにすることで得られる多くの利点の 1 つは、チェック ボックスが各行で個別にチェックされたときに何が起こるかを宣言できることです。もう 1 つは、convertView のリサイクルにより、一度に 60 行すべてをメモリに保持することはないため、パフォーマンスが大幅に向上することです。

AdapterViews の概要については、 http : //developer.android.com/guide/topics/ui/binding.html を参照してください。

ListView と GridView の例を調べてください。それらを理解したら、サンプル コードの一部を調整して、指定されたサンプルの行ではなく、独自の行を膨張させます。

于 2013-03-04T21:00:49.907 に答える
0

編集済み 編集済み

package com.example.help;

import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    CheckBox[] cb=new CheckBox[60];

    for (int i = 0; i<60 ; i++ ){

    LayoutInflater  inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = (View) inflater.inflate(R.layout.rep, null);

    tl.addView(view); // tl is table-layout instance 
    cb[i]=(CheckBox)view.fidViewById(R.id.CheckBoxid);
    cb[i].setChecked(true);



    }
}
于 2013-03-04T21:00:52.870 に答える