Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为活动的oncreate方法内声明的listview创建onclick listner_Android_Listview_Onclick - Fatal编程技术网

Android 如何为活动的oncreate方法内声明的listview创建onclick listner

Android 如何为活动的oncreate方法内声明的listview创建onclick listner,android,listview,onclick,Android,Listview,Onclick,我有一个活动来填充listview。我已经在活动的onCreate方法中创建了listview。现在我想为列表实现一个onclick listner。如何做到这一点 这是我使用listview的活动类: public class PollStationActivity extends Activity { static String response_str=null; static String response_code=null; String ac_cod

我有一个活动来填充listview。我已经在活动的onCreate方法中创建了listview。现在我想为列表实现一个onclick listner。如何做到这一点

这是我使用listview的活动类:

public class PollStationActivity extends Activity {



    static String response_str=null;
    static String response_code=null;

    String ac_code;
    String ac_id;
    String ac_lat;
    String ac_lon;
    String ac_name;

    // Hashmap for ListView
            ArrayList<HashMap<String, String>> PSList = new ArrayList<HashMap<String, String>>();


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // no more this
         setContentView(R.layout.activity_poll_station);

         //sendPostRequest();

         //Log.i("I am here","1");

            final String status_code_from_prev= getIntent().getExtras().getString("status");

            //Log.i("ss",status_code_from_prev);

            ArrayList<PSItem> PSList = new ArrayList<PSItem>();


            DatabaseHelper db = new DatabaseHelper(PollStationActivity.this);
            ContentValues values = new ContentValues();

             try {
              db.createDataBase();

              PSList = db.select(status_code_from_prev); 

              //Log.i("Count : ", " " + PSList.isEmpty());

             } catch (IOException e) {
              e.printStackTrace();
               }

             db.close();


         String[] fromColumns = {"name"};
            int[] toViews = {R.id.list_label_name}; // The TextView in simple_list_item_1

            ListView listView1 = (ListView) findViewById(R.id.poll_list_listView);  
            List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();

            Iterator<PSItem> i = PSList.iterator();

            while(i.hasNext())
            {
                HashMap<String, String> map = new HashMap<String, String>();
                PSItem objPSItem = i.next();

                map.put("name", objPSItem.PS_NAME);
                map.put("ps_Id", objPSItem.PS_ID);
                fillMaps.add(map);
            }





            // fill in the grid_item layout
            SimpleAdapter adapter = new SimpleAdapter(this, fillMaps, R.layout.list_layout, fromColumns, toViews);
            listView1.setAdapter(adapter);

    }
}
公共类PollStationActivity扩展活动{
静态字符串响应\u str=null;
静态字符串响应_code=null;
字符串ac_代码;
字符串ac_id;
字符串ac_lat;
串交流;
字符串ac_名称;
//ListView的Hashmap
ArrayList PSList=新建ArrayList();
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//不要再这样了
setContentView(R.layout.activity\u poll\u station);
//sendPostRequest();
//Log.i(“我在这里”、“1”);
最终字符串状态\u代码\u from\u prev=getIntent().getExtras().getString(“状态”);
//Log.i(“ss”,来自上一个的状态代码);
ArrayList PSList=新建ArrayList();
DatabaseHelper db=新的DatabaseHelper(PollStationActivity.this);
ContentValues=新的ContentValues();
试一试{
db.createDataBase();
PSList=db.select(状态\代码\来自\上一个);
//Log.i(“Count:”,“+PSList.isEmpty());
}捕获(IOE异常){
e、 printStackTrace();
}
db.close();
字符串[]fromColumns={“name”};
int[]toViews={R.id.list\u label\u name};//简单列表项目中的TextView
ListView listView1=(ListView)findViewById(R.id.poll\u list\u ListView);
List fillMaps=new ArrayList();
迭代器i=PSList.Iterator();
while(i.hasNext())
{
HashMap=newHashMap();
PSItem objPSItem=i.next();
地图放置(“名称”,objPSItem.PS_名称);
map.put(“ps_Id”,objPSItem.ps_Id);
fillMaps.add(map);
}
//填写网格项目布局
simpledapter adapter=新的simpledapter(this、fillMaps、R.layout.list\u布局、fromColumns、toViews);
listView1.setAdapter(适配器);
}
}

单击listner时,我应该将listview放在哪里?

如果您使用的是listview,那么应该使用OnItemClickListener。我会在分配适配器后添加侦听器

我更喜欢使用以下解决方案来处理单击事件

public class StartActivity extends Activity implements OnItemClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        setContentView(R.layout.activity_start);

        // Create adapter for the list view

        ListView lw = (ListView) findViewById(R.id.WordsListView);
        lw.setAdapter(adapter);
        lw.setOnItemClickListener(this);    
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


    }
}
public类StartActivity扩展活动实现McClickListener{
@凌驾
创建时的公共void(Bundle savedInstanceState){
setContentView(R.layout.activity_start);
//为列表视图创建适配器
ListView lw=(ListView)findViewById(R.id.WordsListView);
设置适配器(适配器);
lw.setOnItemClickListener(本);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
}
}
您必须使用 AdapterView.OnItemClickListener


单击项目时将调用此处理程序,并向您提供单击项目的位置

您可以在初始化后立即设置侦听器,例如:

ListView listView1 = (ListView) findViewById(R.id.poll_list_listView); 
    listView1.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            //Handle the click
        }           
    });
ListView listView1=(ListView)findViewById(R.id.poll\u list\u ListView);
listView1.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//处理点击
}           
});
即使您还没有为列表设置适配器,也就是说没有显示任何项目,只要您已经通过
findViewById
初始化了listview,设置它的位置也无关紧要