2013-02-17 27 views
0

我有一個活動來填充列表視圖。我已經在活動的onCreate方法內創建了listview。現在我想爲列表實現一個onclick listner。如何實現這一目標?如何爲列表視圖創建onclick列表視圖oncreate方法的一個活動

這是我的活動類的列表視圖:

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); 

    } 
} 

我應該在哪裏放置列表視圖的onclick聽者?

回答

1

你可以設置你初始化之後的監聽器,例如:

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 
     }   
    }); 

即使你沒有設置列表中還適配器,也就是說沒有顯示的項目,它不你可以設置它,只要你已經通過findViewById

初始化了列表視圖
1

如果您使用的是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) { 


    } 
} 
相關問題