让我解释一下自己:
如您所知,当您的视图必须多次膨胀但更改值时,您可以使用 GridView 或 ListView。这两个 Composite 视图有一些方法,例如onItemClick
. 这个方法非常有用,因为它返回点击视图的位置。
有了这个职位,您可以执行一些具体的任务,例如从 ArrayList 中检索该对象的信息。这是一个例子:
ArrayList<DocumentInfo> documents;
当您设置 a 时,setOnItemClickListener()
您可以获得正确的值:
gallery.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View v, int pos, long arg3) {
getDocumentInfoOf(pos);
}
});
public void getDocumentInfoOf(int position){
DocumentInfo doc = documents.get(position);
}
但是,当您不使用 GridView 或 ListView 时,您就是自己的。您没有明确的方法(AFAIK)来知道哪个布局膨胀是点击的(我的意思是像前面的例子一样,“位置”值)。
我目前正在做的事情如下:
for (int i=0; i<10;i++){
RelativeLayout documentInflated = (RelativeLayout) this.mInflater.inflate(R.layout.open_document_per_inflar, null);
documentInflated.setContentDescription(""+i);
documentInflated.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
openDocument(v);
}
});
container.addView(documentInflated);
}
public void openDocument(View v){
int idDocument = Integer.parseInt(v.getContentDescription());
//idDocument is the view clicked
}
你们认为这是一种明确的方法吗?
谢谢!!!