Android 单击listview中图像上的侦听器
我正在开发一个android应用程序,其中包含带有imageview的listview和两个文本视图,如图片所附。因此,我在这里的查询是在单击图像时进行的,而不是在列表项上。我应该导航到另一个活动。我的代码如下Android 单击listview中图像上的侦听器,android,onclicklistener,Android,Onclicklistener,我正在开发一个android应用程序,其中包含带有imageview的listview和两个文本视图,如图片所附。因此,我在这里的查询是在单击图像时进行的,而不是在列表项上。我应该导航到另一个活动。我的代码如下 public class MainActivity extends Activity { String[] animals=new String[]{"Chinkara","Redpanda","Elephant","Squirel","Langur"}; int[] images
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);
}
}
公共类MainActivity扩展活动
{
字符串[]动物=新字符串[]{“Chinkara”、“Redpanda”、“大象”、“Squirel”、“叶猴”};
int[]images=new int[]{R.drawable.rsz_rajas_chinkara,R.drawable.rsz_rsz_锡金_redpanda,R.drawable.rsz_jharkhand_indianelephant,R.drawable.rsz_mh_indiangiantsquirel
,R.drawable.rsz_tripura_langur};
字符串[]国家=新字符串[]{“印度”、“印度”、“印度”、“印度”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lst=(ListView)findViewById(R.id.ListView);
列表列表=新的ArrayList();
对于(int i=0;i使用自定义列表适配器&在imageview上的getView方法setonclicklistener中。请参阅,您可以在适配器中尝试此操作,而不是在活动中:
animalImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//your logic
}
});
希望这有帮助。您需要实现自己的适配器,并在getView()方法中为imageview设置onclick侦听器。在适配器类getView()方法中尝试此代码
下面是为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
}
});
}
}
});
lst.setOnScrollListener(新的OnScrollListener(){
CrollStateChanged上的公共无效(AbsListView视图,
int(滚动状态){
}
public void onScroll(AbsListView视图,int firstVisibleItem,
int visibleItemCount,int totalItemCount){
对于(int i=0;i
我建议使用自定义适配器
但是在您的情况下,您可以这样做您应该在适配器中为onclicklistener编写代码…因为问题已经被回答了(n次)只是一个离题:您可以使用this
而不是getBaseContext()
创建适配器时。将适配器代码张贴在此处Hi Amsher,上面的级别1是什么?接受答案,其中一个对您有帮助。它将帮助其他人。
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
}
});
}
}
});