Android-如何创建可点击的列表视图?

我想使列表视图中的所有列表项都打开到一个新页面中,因此每个列表视图项都打开到一个我可以使用的新黑色页面上。我根本不知道该如何实现。我已经连续搜索了几个小时,找不到解决方案的答案。如果有人可以显示和/或解释如何执行此操作而不是提供链接,将不胜感激,但是两者之一都很有帮助。

到目前为止,这是我的代码:

  <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>

这是在我的string.xml中

    <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>

这是在我的activity_main.xml中。

我应该从哪里去使列表中的每个项目都可单击并打开新页面?

提前致谢!

编辑:

Logcat不再相关。

回答:

实际上,这很容易:

这是您与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 /文件夹中的 (不是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 {

@Override

public 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>

如果您复制了此代码,它将可以正常工作。

以上是 Android-如何创建可点击的列表视图? 的全部内容, 来源链接: utcz.com/qa/399996.html

回到顶部