安卓ListView中item點擊setOnItemClickListener響應設置

for(BluetoothDevice device : pairedDevices) {
            list1.add("設備名稱:" + device.getName() + "/" + device.getAddress());
            mainList1.add(device);
//        Toast.makeText(getApplicationContext(),"Showing Paired Devices",
//                Toast.LENGTH_SHORT).show();

            adapter1 = new ArrayAdapter
                    (this,android.R.layout.simple_list_item_1, list1);
        }
        list1.add("未配對設備:");
//        Log.d("檢測:", "已配對藍牙設備讀取正常!" );
        lv1.setAdapter(adapter1);

        Log.d("檢查:","lv1[1]"+lv1.getItemAtPosition(1));

        lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                String str=lv1.getItemAtPosition(position)+" ";
                Log.d("檢查:","OnItemClick功能實現!\n"+str);
            }
        });

對ListView的Item點擊響應,用到的是:

lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() 

其中獲取在ListView中位置的position對應名稱由:

getItemAtPosition(position)

但是得到的數據類型爲Map型,需要加上" "自動調用toString()函數,轉化爲String類型。

//**************************************************************************************************************//

//**************************************************************************************************************//

//**************************************************************************************************************//

//**************************************************************************************************************//

lv1.setOnItemClickListener(new ItemClickListener());
}
public class ItemClickListener implements AdapterView.OnItemClickListener{
    @Override
    public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3) {
        String str = lv1.getItemAtPosition(arg2)+" ";
        Log.d("檢測:","str="+str );
    }
}

同時,在方法外部聲明類,及implements的方法,在方法內引用相應(並不相同):

OnItemClickListener
對應的是:
setOnItemClickListener(new ItemClickListener())

括號內的類名即爲方法外聲明的類。


//**************************************************************************************************************//

//**************************************************************************************************************//

//**************************************************************************************************************//

//**************************************************************************************************************//

本想着在一個layout中使用多個ListView控件,但是點擊的時候能夠通過第二種方法,使用switch/case的方法區分不同的控件,但是嘗試後不知道通過什麼指令獲取不同的控件的id,嘗試過getId()和View中的arg1,說以還是很難受的。

如果哪位清楚的話請留言探討一下,謝謝~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章