android – 如何在列表视图中使项目可点击?

前端之家收集整理的这篇文章主要介绍了android – 如何在列表视图中使项目可点击?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在努力寻找解决方案,但收效甚微.
我必须显示一个包含项目列表的弹出窗口.
我能够显示窗口,但单击列表视图中的项目时未调用onitemclicklistener.任何有关此问题的帮助将不胜感激.

谢谢

EDIT1:

  1. public class PopUpWindowActivity extends Activity {
  2.  
  3. /** Called when the activity is first created. */
  4. String[] countries = new String[] {
  5. "India","USA","Canada"
  6. };
  7.  
  8. public void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. LinearLayout ll = new LinearLayout(this);
  11. ListView lv = new ListView(this);
  12. lv.setAdapter(new ArrayAdapter < String > (this,android.R.layout.simple_list_item_1,countries));
  13. lv.setOnItemClickListener(new OnItemClickListener() {
  14.  
  15. public void onItemClick(AdapterView <? > arg0,View arg1,int arg2,long arg3) {
  16. Log.v("clicked",(String)((TextView) arg1).getText());
  17. }
  18.  
  19. });
  20. ll.addView(lv);
  21. setContentView(ll);
  22. }
  23. }

在上面的代码中,我试图创建一个布局,其中我添加了一个列表视图.这使列表视图不再可单击.我必须这样做因为,我正在尝试实现一个弹出窗口,其中应该有多个项目以及列表视图.

解决方法

编辑答案

申请此样本请为您工作我已经测试了此代码

//ListviewActivity.java

  1. package com.anl.lk;
  2.  
  3. public class ListviewActivity extends ListActivity {
  4.  
  5. static final String[] COUNTRIES = new String[] {
  6.  
  7. "Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory"
  8. };
  9.  
  10. /** Called when the activity is first created. */
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setListAdapter(new ArrayAdapter < String > (this,COUNTRIES));
  15. getListView().setTextFilterEnabled(true);
  16. }
  17.  
  18. @Override
  19. protected void onListItemClick(ListView l,View v,int position,long id) {
  20. // TODO Auto-generated method stub
  21. super.onListItemClick(l,v,position,id);
  22.  
  23. new AlertDialog.Builder(this)
  24. .setTitle("Hello")
  25. .setMessage("from " + getListView().getItemAtPosition(position))
  26. .setPositiveButton("OK",new DialogInterface.OnClickListener() {
  27. public void onClick(DialogInterface dialog,int which) {}
  28. })
  29. .show();
  30.  
  31. Toast.makeText(ListviewActivity.this,"ListView: " + l.toString() + "\n" +
  32. "View: " + v.toString() + "\n" +
  33. "position: " + String.valueOf(position) + "\n" +
  34. "id: " + String.valueOf(id),Toast.LENGTH_LONG).show();
  35. }
  36.  
  37. }

//第一页

  1. package com.anl.lk;
  2.  
  3. public class FirstPage extends Activity {
  4.  
  5. @override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. // TODO Auto-generated method stub
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.main);
  10. Button b = (Button) findViewById(R.id.button1);
  11. b.setOnClickListener(new OnClickListener() {
  12.  
  13. public void onClick(View v) {
  14. // TODO Auto-generated method stub
  15. Intent sam = new Intent(FirstPage.this,ListviewActivity.class);
  16. startActivity(sam);
  17.  
  18. }
  19. });
  20. }
  21. }

//清单文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.anl.lk"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6.  
  7. <uses-sdk android:minSdkVersion="8" />
  8.  
  9. <application
  10. android:icon="@drawable/ic_launcher"
  11. android:label="@string/app_name" >
  12. <activity
  13. android:label="@string/app_name"
  14. android:name=".FirstPage" >
  15. <intent-filter >
  16. <action android:name="android.intent.action.MAIN" />
  17.  
  18. <category android:name="android.intent.category.LAUNCHER" />
  19. </intent-filter>
  20. </activity>
  21. <activity android:name=".ListviewActivity" android:theme="@android:style/Theme.Dialog"></activity>
  22. </application>

请使用此代码,它有您的解决方

猜你在找的Android相关文章