为java中的ArrayAdapter按钮分配唯一ID

时间:2015-12-09 00:16:56

标签: java android android-arrayadapter

我有一个自定义的ArrayList,我用来填充一个Activity,这个ArrayList采用一个预先填充的字符串数组的ListView,每个都是唯一的。在这个例子中,我正在列出一个Band名称列表(可以改变)。

ArrayAdapter由此ArrayList填充并插入到包含XML按钮的布局块中。

  

主要

ArrayList<String> BandList = Controller.BandInfo();

findtheListView = (ListView) findViewById(R.id.findtheListView);
newAdaptor = new ArrayAdapter<String>(this, R.layout.listviewrow, BandList);
findtheListView.setAdapter(newAdaptor);
  

Listview_row

<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="20dp"
android:textSize="18sp"
android:onClick="onClickdoAction">

列表填充没有问题插入我的所有值,我遇到的问题是每个新填充按钮的按钮具有相同的ID。

点击后我有一个功能,可以找到按钮的值,并根据按钮进入某个页面。 但是,单击按钮,只需从第一个定义的按钮中找到信息。

我如何为每个按钮指定唯一ID?

2 个答案:

答案 0 :(得分:0)

不知道按钮是否具有唯一ID,但也许您可以尝试Button.setTag(Object),为每个按钮设置唯一值。当点击可以使用View.getTag()获得之前设置的唯一值

答案 1 :(得分:0)

如果您正在努力点击每个按钮,请使用此解决方案

findtheListView.setOnItemClickListener((new AdapterView.OnItemClickListener(){

  @Override 
  public void onItemClick(AdapterView<> parent, View view, int position, long id)
  { 
    // your code here based on position. 
    // You can use bandlist for getting data at that position 
  } 

}); 

的问候,