正在开发一个Android应用程序,其中包含带有imageview的listview和两个textview,如图所示。所以我的查询是单击图像,而不是列表项。我应该导航到另一个活动。我的代码如下
public class MainActivity extends Activity
{
String[] animals=new String[]{"Chinkara","Redpanda","Elephant","Squirel","Langur"};
int[] images=new int[]{R.drawable.rsz_rajas_chinkara,R.drawable.rsz_rsz_sikkim_redpanda,R.drawable.rsz_jharkhand_indianelephant,R.drawable.rsz_mh_indiangiantsquirel
,R.drawable.rsz_tripura_langur};
String[] country=new String[]{"India","India","India","India","India"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lst=(ListView) findViewById(R.id.listview);
List<HashMap<String,String>> alist=new ArrayList<HashMap<String,String>>();
for(int i=0; i<5;i++)
{
HashMap<String,String> hm=new HashMap<String, String>();
hm.put("txt","Animal :" +animals[i]);
hm.put("country","Country :" +country[i]);
hm.put("image", Integer.toString(images[i]));
alist.add(hm);
}
String[] from={"image","txt","country"};
int[] to={R.id.image,R.id.txt,R.id.country};
SimpleAdapter adapter=new SimpleAdapter(getBaseContext(), alist, R.layout.listview_layout, from, to);
lst.setAdapter(adapter);
}
}
答案 0 :(得分:1)
在适配器类getView()方法中尝试此代码
myImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(context,yourActivity.class);
startActivity(i);
}
});
答案 1 :(得分:0)
使用自定义列表适配器&amp;在imageview上的getView方法setonclicklistener中。参考cusom list view
答案 2 :(得分:0)
您可以在适配器中尝试此操作,而不是活动:
animalImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//your logic
}
});
希望这有帮助。
答案 3 :(得分:0)
您需要实现自己的适配器并在getView()
方法中为imageview设置onclick侦听器。
答案 4 :(得分:0)
以下是为listview中的每个项目设置点击操作的另一种方法。实施onscrolllistener
lst.setOnScrollListener(new OnScrollListener() {
public void onScrollStateChanged(AbsListView view,
int scrollState) {
}
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
for (int i = 0; i < lst.getChildCount(); i++) {
LinearLayout layout = (LinearLayout) lst
.getChildAt(i);
// Here "0" is the position of your imageview or
// imagebutton
ImageView animalImage = (ImageView) layout
.getChildAt(0);
animalImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// your logic
}
});
}
}
});
我建议使用自定义适配器。
但在你的情况下,你可以这样做