0

リストビューにデータを入力するアクティビティがあります。アクティビティの onCreate メソッド内にリストビューを作成しました。ここで、リストの onclick リスナーを実装したいと思います。これを達成する方法は?

これは、リストビューを使用した私のアクティビティ クラスです。

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

    }
}

listview onclick listner はどこに配置すればよいですか?

4

3 に答える 3

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

于 2013-02-17T13:56:43.570 に答える
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) {


    }
}
于 2013-02-17T13:48:22.490 に答える
0

AdapterView.OnItemClickListenerを使用する必要があります。

http://developer.android.com/reference/android/widget/AdapterView.html#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener)を参照してください

このハンドラーは、アイテムがクリックされたときに呼び出され、クリックされたアイテムの位置を提供します。

于 2013-02-17T13:48:40.667 に答える