【问题标题】:Listview click is not fire.Listview 点击不会触发。
【发布时间】:2012-03-26 04:42:13
【问题描述】:

我为包含文本和图像的列表视图创建了自定义适配器,单击特定列表项时我必须打开另一个活动,但我无法触发列表视图单击事件,下面是我的代码。

谢谢。

适配器

public class ImageAndTextAdapter extends ArrayAdapter<String> {

private LayoutInflater mInflater;
private Context myCtx;
private String[] mStrings;
private TypedArray mIcons;

private int mViewResourceId;

public ImageAndTextAdapter(Context ctx, int viewResourceId,
        String[] strings, TypedArray icons) {
    super(ctx, viewResourceId, strings);
    myCtx = ctx;
    mInflater = (LayoutInflater)ctx.getSystemService(
            Context.LAYOUT_INFLATER_SERVICE);

    mStrings = strings;
    mIcons = icons;

    mViewResourceId = viewResourceId;
}

@Override
public int getCount() {
    return mStrings.length;
}

@Override
public String getItem(int position) {
    return mStrings[position];
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    convertView = mInflater.inflate(mViewResourceId, null);

    ImageView iv = (ImageView)convertView.findViewById(R.id.option_icon);
    iv.setImageDrawable(mIcons.getDrawable(position));


    TextView tv = (TextView)convertView.findViewById(R.id.option_text);
    tv.setText(mStrings[position]);

    return convertView;
}
}

主要活动

public class OurWishingWellActivity extends ListActivity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   // setContentView(R.layout.list_view_image);

    Context ctx = getApplicationContext();
    Resources res = ctx.getResources();

    String[] options = res.getStringArray(R.array.reg_item_names);
    TypedArray icons = res.obtainTypedArray(R.array.reg_icons);

    setListAdapter(new ImageAndTextAdapter(ctx, R.layout.list_item,
            options, icons));

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}


}

【问题讨论】:

  • 您的列表项中是否有任何 ImageButton 或 Button?
  • 你能告诉我们你的主xml和行xml吗?
  • 我要把整个发给你..一会儿
  • 确实有链接..我想在这个列表中添加onItemClick..androidcookbook.com/…
  • 在您的主 xml 布局以及行文件 xml 主布局中添加此属性。 android:descendantFocusability="blocksDescendants"

标签: java android image listview onitemclick


【解决方案1】:

尊敬的阿法格#

你已经写了如下列表视图的 onclick。

  @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);
    Toast.makeText(AdvancedListViewActivity.this, "working", Toast.LENGTH_SHORT).show();
    System.out.println("working!!!!!!!!!");
}

【讨论】:

  • 是的,你是对的,但我是新手,你已经发布了关于列表视图的信息。在我的情况下,xml 中没有任何列表,只是一个文本视图和图像视图,它在运行时,我需要一个可以调用其他活动的 onItemClick 事件。这是实际示例androidcookbook.com/…
  • 是的,我实现了那个例子,在添加了这几行代码后它对我有用,它对你也有用吗?
  • 你能把整个代码发给我吗..它又给了我错误..对不起这个兄弟:(
  • 是的,我已经删除了,但现在我在 AVD 中看不到列表.. 它是空白的
  • 我的声誉是6,如果你没有问题我不能加入,请通过邮件发送..ishtiaq@relax-solutions.com
【解决方案2】:

添加监听器

@Override

public View getView(int position, View convertView, ViewGroup parent) { convertView = mInflater.inflate(mViewResourceId, null);

ImageView iv = (ImageView)convertView.findViewById(R.id.option_icon);
iv.setImageDrawable(mIcons.getDrawable(position));


TextView tv = (TextView)convertView.findViewById(R.id.option_text);
tv.setText(mStrings[position]);

convertView .setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            startActivity();


        }
    });

return convertView;

}

【讨论】:

    猜你喜欢
    • 2020-12-27
    • 2018-04-18
    • 1970-01-01
    • 2010-11-23
    • 2011-09-30
    • 2013-05-19
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多