获取xml布局中的项目ID

时间:2013-03-04 20:49:45

标签: java android xml android-layout

我的行包含复选框和2个文本视图

我正在使用此代码重复自定义xml布局,它正常工作

但我想知道行中每个组件的每个id(复选框的id和编辑1和id edit2)

所以我可以和他们一起工作。

我还需要循环来为id创建这个实例。

让我的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);

和sooo on ...

我在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 
}

2 个答案:

答案 0 :(得分:1)

如果需要添加60行,则不应使用循环和TableLayout。

您应该使用带适配器的AdapterView来保存数据并为您充气。以这种方式执行此操作的众多好处之一是能够声明在每行中独立检查复选框时会发生什么。另一个是你将获得更好的性能,因为你不会同时在内存中拥有所有60行,因为convertView回收。

转到此处:http://developer.android.com/guide/topics/ui/binding.html获取AdapterViews的高级别介绍。

研究ListView和GridView的示例。一旦你完成了它们,就可以调整一些示例代码来扩展你自己的行而不是给出的样本。

答案 1 :(得分:0)

EDITED EDITED

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);



    }
}