綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] BaseAdapter 要如何取得其中的 item

[複製連結] 查看: 1065|回覆: 2|好評: 0
跳轉到指定樓層
樓主
pelrbaron | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2016-6-22 03:24

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
各位大大,我想請問一下,我利用 BaseAdapter 取得附近的資料,但我想點擊某個 Item 後中的值,我利用
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
         }
仍是無法取得其中的值,請知道的大大能告訴小弟,以下是程式碼的部分

        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.sac_wifi);
                init();
                Button();
        }

        private void Button() {
                start.setOnClickListener(new Button.OnClickListener()
        {
                        public void onClick(View v) {
                               
                                getssid();
                        }               
        });
                back.setOnClickListener(new Button.OnClickListener()
        {
                        public void onClick(View v) {
                                startActivity(new Intent(SacWIFI.this,MainActivity.class));
                                finish();
                        }               
        });
               
        }

        protected void getssid() {
                wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
                openWifi();
                list = wifiManager.getScanResults();
                ListView listView = (ListView) findViewById(R.id.listView);
                if (list == null) {
                        Toast.makeText(this, "wifi未打开!", Toast.LENGTH_LONG).show();
                }else {
                        listView.setAdapter(new MyAdapter(this,list));
                }
        }

        private void init() {
               
                 start = (Button) findViewById(R.id.start);
                 back = (Button) findViewById(R.id.back);               
        }
       
        /**
         *  打开WIFI
         */
        private void openWifi() {
           if (!wifiManager.isWifiEnabled()) {
            wifiManager.setWifiEnabled(true);
           }
          
        }

        public class MyAdapter extends BaseAdapter {

                LayoutInflater inflater;
                List<ScanResult> list;
                public MyAdapter(Context context, List<ScanResult> list) {
                        // TODO Auto-generated constructor stub
                        this.inflater = LayoutInflater.from(context);
                        this.list = list;
                }

                @Override
                public int getCount() {
                        // TODO Auto-generated method stub
                        return list.size();
                }

                @Override
                public Object getItem(int position) {
                        // TODO Auto-generated method stub
                        return position;
                }

                @Override
                public long getItemId(int position) {
                        // TODO Auto-generated method stub
                        return position;
                }

                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                        // TODO Auto-generated method stub
                        View view = null;
                        view = inflater.inflate(R.layout.wifilist, null);
                        ScanResult scanResult = list.get(position);
                        TextView textView = (TextView) view.findViewById(R.id.textView);
                        textView.setText(scanResult.SSID);
                        TextView signalStrenth = (TextView) view.findViewById(R.id.signal_strenth);
                        signalStrenth.setText(String.valueOf(Math.abs(scanResult.level)));
                        ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
                        //判断信号强度,显示对应的指示图标
                        if (Math.abs(scanResult.level) > 100) {
                                imageView.setImageDrawable(getResources().getDrawable(R.drawable.stat_sys_wifi_signal_0));
                        } else if (Math.abs(scanResult.level) > 80) {
                                imageView.setImageDrawable(getResources().getDrawable(R.drawable.stat_sys_wifi_signal_1));
                        } else if (Math.abs(scanResult.level) > 70) {
                                imageView.setImageDrawable(getResources().getDrawable(R.drawable.stat_sys_wifi_signal_1));
                        } else if (Math.abs(scanResult.level) > 60) {
                                imageView.setImageDrawable(getResources().getDrawable(R.drawable.stat_sys_wifi_signal_2));
                        } else if (Math.abs(scanResult.level) > 50) {
                                imageView.setImageDrawable(getResources().getDrawable(R.drawable.stat_sys_wifi_signal_3));
                        } else {
                                imageView.setImageDrawable(getResources().getDrawable(R.drawable.stat_sys_wifi_signal_4));
                        }
                        return view;
                }

        }

}
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
ploglin | 收聽TA | 只看該作者
發表於 2016-6-22 09:18
你可以先重寫在adapter裡面的 getItem

  1. @Override
  2.                 public ScanResult getItem(int position) {
  3.                         return list.get(position);
  4.                 }
複製代碼


  1. # 先定義adapter
  2. MyAdapter adapter = new MyAdapter(this,list)
  3. listView.setAdapter(adapter);
複製代碼

  1. # 這樣可以在 onitemclick 的時候去呼叫
  2. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  3.     ScanResult result = adapter.getItem(position);
  4. }
複製代碼

評分

參與人數 1碎鑽 +1 幫助 +1 收起 理由
pelrbaron + 1 + 1 非常讃

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| pelrbaron | 收聽TA | 只看該作者
發表於 2016-6-22 18:28
請問adapter要定義在哪,在onitemclick的時候 adapter會出現錯誤,能請大大告訴小弟嘛,感謝啊
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則