实际上,这很容易:
这是您与ListView一起使用的Activity,它实现了OnItemClickListener:
public class MainActivity extends Activity implements onItemClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //* *EDIT* * ListView listview = (ListView) findViewById(R.id.listView1); listview.setonItemClickListener(this); } public void onItemClick(AdapterView<?> l, View v, int position, long id) { Log.i("HelloListView", "You clicked Item: " + id + " at position:" + position); // Then you start a new Activity via Intent Intent intent = new Intent(); intent.setClass(this, ListItemDetail.class); intent.putExtra("position", position); // Or / And intent.putExtra("id", id); startActivity(intent); }编辑
上面的代码将放在您的MainActivity.java中。我将类的名称更改为
MainActivity,将contentView更改为
setContentView(R.layout.activity_main)-名称是在Eclipse中新创建的Android项目的名称。
另请参见// * 编辑 * 下的2行-这些行将为点击列表中的项设置监听器。
您的activity_main.xml应该如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:entries="@array/sections" > </ListView></RelativeLayout>
您的
res / values /文件夹中的 array.xml (不是string.xml)看起来像这样
<resources> <string-array name="sections"> <item >Pro Constructive</item> <item >Con Constructive</item> <item >1st Speaker Cross</item> <item >Pro Rebbutal</item> <item >Con Rebuttal</item> <item >2nd Speaker Cross</item> <item >Pro Summary</item> <item >Con Summary</item> <item >Grand Cross</item> <item >Pro Final Focus</item> <item >Con Final Focus</item> </string-array></resources>
注意:如果您复制并粘贴此代码,它将可以正常工作。但是,由于尚未创建项目,因此单击某个项目会出现错误
ListItemDetail.class。
这是看起来的例子:
您的ListItemDetail.java:
public class ListItemDetail extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listitem); Intent intent = getIntent(); int position = intent.getIntExtra("position", 0); // Here we turn your string.xml in an array String[] myKeys = getResources().getStringArray(R.array.sections); TextView myTextView = (TextView) findViewById(R.id.my_textview); myTextView.setText(myKeys[position]); }}及其activity_listitem.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/my_textview"/></LinearLayout>
如果您复制了此代码,它将可以正常工作。



