我一直在努力寻找解决方案,但收效甚微.
我必须显示一个包含项目列表的弹出窗口.
我能够显示窗口,但单击列表视图中的项目时未调用onitemclicklistener.任何有关此问题的帮助将不胜感激.
我必须显示一个包含项目列表的弹出窗口.
我能够显示窗口,但单击列表视图中的项目时未调用onitemclicklistener.任何有关此问题的帮助将不胜感激.
谢谢
EDIT1:
public class PopUpWindowActivity extends Activity { /** Called when the activity is first created. */ String[] countries = new String[] { "India","USA","Canada" }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); ListView lv = new ListView(this); lv.setAdapter(new ArrayAdapter < String > (this,android.R.layout.simple_list_item_1,countries)); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView <? > arg0,View arg1,int arg2,long arg3) { Log.v("clicked",(String)((TextView) arg1).getText()); } }); ll.addView(lv); setContentView(ll); } }
在上面的代码中,我试图创建一个布局,其中我添加了一个列表视图.这使列表视图不再可单击.我必须这样做因为,我正在尝试实现一个弹出窗口,其中应该有多个项目以及列表视图.
解决方法
编辑答案
申请此样本请为您工作我已经测试了此代码
//ListviewActivity.java
package com.anl.lk; public class ListviewActivity extends ListActivity { static final String[] COUNTRIES = new String[] { "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" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter < String > (this,COUNTRIES)); getListView().setTextFilterEnabled(true); } @Override protected void onListItemClick(ListView l,View v,int position,long id) { // TODO Auto-generated method stub super.onListItemClick(l,v,position,id); new AlertDialog.Builder(this) .setTitle("Hello") .setMessage("from " + getListView().getItemAtPosition(position)) .setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) {} }) .show(); Toast.makeText(ListviewActivity.this,"ListView: " + l.toString() + "\n" + "View: " + v.toString() + "\n" + "position: " + String.valueOf(position) + "\n" + "id: " + String.valueOf(id),Toast.LENGTH_LONG).show(); } }
//第一页
package com.anl.lk; public class FirstPage extends Activity { @override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.button1); b.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent sam = new Intent(FirstPage.this,ListviewActivity.class); startActivity(sam); } }); } }
//清单文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.anl.lk" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".FirstPage" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ListviewActivity" android:theme="@android:style/Theme.Dialog"></activity> </application>