如何在Android中的Listview上添加McClickListener

如何在Android中的Listview上添加McClickListener,android,listview,android-listview,Android,Listview,Android Listview,我的主要活动课是。。我知道列表项的位置,我只想知道如何针对每个列表项添加浏览器活动。因此,当单击列表中的项目时,它将导航到该网站。如果点击列表中的谷歌,它应该导航到Google.com import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import andr

我的主要活动课是。。我知道列表项的位置,我只想知道如何针对每个列表项添加浏览器活动。因此,当单击列表中的项目时,它将导航到该网站。如果点击列表中的谷歌,它应该导航到Google.com

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


public class Main extends ListActivity {



        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);        
        setListAdapter(new MyAdapter(this,android.R.layout.simple_list_item_1,R.id.textView1, getResources().getStringArray(R.array.countries)));

        }


        private class MyAdapter extends ArrayAdapter<String> {

        public MyAdapter(Context context, int resource,
        int textViewResourceId, String[] strings) {
        super(context, resource, textViewResourceId, strings);
        // TODO Auto-generated constructor stub
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row = inflater.inflate(R.layout.list_item, parent, false);
        String[] items = getResources().getStringArray(R.array.countries);

        ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
        TextView tv =  (TextView) row.findViewById(R.id.textView1);

        tv.setText(items[position]);


        if(items[position].equals("Pakistan")){

            iv.setImageResource(R.drawable.apk);

            }

        else if(items[position].equals("Canada")){

            iv.setImageResource(R.drawable.canada);
            }

        else if(items[position].equals("India")){

            iv.setImageResource(R.drawable.india);
            }

        else if(items[position].equals("UAE")){

            iv.setImageResource(R.drawable.uae);
            }
        return row;
            }

        }
    }
导入android.app.ListActivity;
导入android.content.Context;
导入android.content.Intent;
导入android.net.Uri;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类主活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
setListAdapter(新的MyAdapter(这个,android.R.layout.simple_list_item_1,R.id.textView1,getResources().getStringArray(R.array.countries));
}
私有类MyAdapter扩展了ArrayAdapter{
公共MyAdapter(上下文、int资源、,
int textViewResourceId,字符串[]字符串){
super(上下文、资源、textViewResourceId、字符串);
//TODO自动生成的构造函数存根
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务);
视图行=充气机。充气(R.layout.list\u项,父项,false);
String[]items=getResources().getStringArray(R.array.countries);
ImageView iv=(ImageView)row.findViewById(R.id.imageView1);
TextView tv=(TextView)row.findViewById(R.id.textView1);
tv.setText(项目[位置]);
如果(项目[位置].等于(“巴基斯坦”)){
iv.setImageResource(R.drawable.apk);
}
else如果(项目[位置].equals(“加拿大”)){
iv.setImageResource(R.drawable.加拿大);
}
else如果(项目[位置].equals(“印度”)){
iv.setImageResource(R.drawable.印度);
}
else如果(项目[位置].equals(“阿联酋”)){
iv.setImageResource(R.drawable.uae);
}
返回行;
}
}
}

此代码适用于您的案例,在单击项目时,转到您想要的特定url

listView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {


            Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com"));
            startActivity(browserIntent);
        }
    });
listView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Intent browserIntent=新的意图(Intent.ACTION\u视图,Uri.parse(“http://www.google.com"));
startActivity(浏览器内容);
}
});

因为它是一个列表活动。覆盖
onListItemClick

protected void onListItemClick (ListView l, View v, int position, long id)

Added in API level 1
This method will be called when an item in the list is selected. Subclasses should override. Subclasses can call getListView().getItemAtPosition(position) if they need to access the data associated with the selected item.

Parameters
l   The ListView where the click happened
v   The view that was clicked within the ListView
position    The position of the view in the list
id  The row id of the item that was clicked
由于布局中有ImageView,所以当您单击列表项时,它可能会聚焦


因此,将此
android:genderantfocusability=“blocksDescendants”
添加到
list\u item.xml中的根元素中

我在发布代码时遇到问题,请提供帮助?复制相关代码并将其发布到此处。你需要什么帮助。朋友,我是新来的,这就是为什么会有问题。。我已经发布了密码。。请帮我看一下。@SikanderEjaz在您的活动中覆盖
onListItemClick
。如果您使用的是eclipse。右键单击源代码覆盖实现的方法查找onListItemClick@SikanderEjaz并为
list\u item.xml中的根元素添加此
android:genderantfocusability=“blocksDescendants”
,谢谢伙计,问题解决了@SikanderEjaz确实通过点击旁边的勾号接受了答案。它说“投票需要至少15个声誉”,而我只有1个,因为我今天加入了。