0

首先,我是android编程的初学者。所以不要太苛刻:P

无论如何,我有一个回收 ListView,每个列表项包含一个图像和一个文本。假设有 100 个不同的项目。单击的每个项目都会将我带到带有“detail_layout.xml”的活动“DetailActivity.class”。现在我想根据单击的项目配置此布局。

测试活动.java:

ArrayList<String> list = new ArrayList<String>();
for(int i = 0; i <= 99; i++) {
    list.add(detail_array[i]); 
    //detail_array[] contains Strings which are used to add Items to the list.
}
private ListView myList = (ListView)findViewById(R.id.list);
myList.setAdapter(new MyCustomAdapter(TestActivity.this,list));

MyCustomAdapter.java:

public class MyCustomAdapter extends BaseAdapter {

private ArrayList<String> mListItemsTV;
private LayoutInflater mLayoutInflater;

public View getView(int position, View view, ViewGroup viewGroup) {
    ViewHolder holder;
    if (view == null) {
        holder = new ViewHolder();
        view = mLayoutInflater.inflate(R.layout.list_item, null);
        holder.itemName = (TextView) view.findViewById(R.id.list_item_text_view);
        view.setTag(holder);
    } else {
        holder = (ViewHolder)view.getTag();
    }
    String stringItem = mListItemsTV.get(position);
    if (stringItem != null) {
        if (holder.itemName != null) {
            holder.itemName.setText(stringItem);
            ImageView imageView = (ImageView) view.findViewById(R.id.list_item_image_view);
            if(holder.itemName.getText() == "SomeName") {
                imageView.setImageResource(R.drawable.somedrawable);
            }
    return view;
}

老实说,我从某种教程中得到了这些,我想我知道那里发生了什么^^ 现在,我怎样才能设法获得点击了哪个项目?我用“setOnClickListener”试了几次,但似乎从来没有用过。我该如何使用它?我应该使用这个吗?我必须在哪里使用它?

4

3 回答 3

0

如果您不想使用适配器,请尝试以下操作:

   @Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    switch(position){
    /*
     * The case is the list position
     */
    case 0:

        break;
    case 1:

        break;
    }

}
于 2014-05-29T14:13:53.110 回答
0

基本思想是列表视图通常是动态的,因此您将拥有一组要向侦听器注册的任意数量的项目。除非您单独注册每个项目(这不是一个好主意),否则 Oclicklistener 将无法工作。使用 onitemclicklistener 注册这个链接应该有帮助的集合。http://www.ezzylearning.com/tutorial.aspx?tid=1351248&q=handling-android-listview-onitemclick-event

于 2013-10-20T22:37:40.467 回答
0

您需要使用 setOnItemClickListener。这是一个如何使用它的例子。您需要使其适应您的代码。但是您可以看到如何引用列表中的单个项目。

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

  @Override
  public void onItemClick(AdapterView<?> parent, final View view,
      int position, long id) {
    final String item = (String) parent.getItemAtPosition(position);
    view.animate().setDuration(2000).alpha(0)
        .withEndAction(new Runnable() {
          @Override
          public void run() {
            list.remove(item);
            adapter.notifyDataSetChanged();
            view.setAlpha(1);
          }
        });
  }

});

}

回家后我会修复格式。在移动提款机上。如果有人想编辑代码,请随意。

于 2013-10-21T00:01:40.343 回答