我试图制作一个非常简单的列表视图来学习。当我在listview上设置适配器(从xml访问)时,应用程序崩溃了,但是当我只是将setAdapter放在listview后面时,listview就可以了。我在三星Galaxy s3智能手机上运行它。
这是我的代码
ListviewAndroidExample.java(即使我在onCreate之后将setContentView放到R.layout.activity_main,它也会崩溃)
package com.example.listview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListViewAndroidExample extends ListActivity {
ListView list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] Home = {
"BEDROOM",
"BATHROOM",
"KITCHEN",
"WASHROOMS",
"BASEMENT"};
ListView list=(ListView)findViewById(R.id.mylist);
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1, Home);
list.setAdapter(adapter);
}}
我的xml文件(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<ListView android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:layout_weight="1"
android:divider="#FFCC00"
android:dividerHeight="4px"/>
android:drawSelectorOnTop="false"/>
</LinearLayout>
还请告诉我如何制作一个长吐司,点击列表项目时会说出哪个(位置)列表项被点击。
答案 0 :(得分:3)
扩展ListActivity时,您必须在布局文件中放置XML listview。
ListView的id应该是:“@ android:id / list”
这就是Android查找列表布局的方式。
您可能希望阅读ListActivity and Custom Layout以更熟悉这个概念。
所以改变你的布局:
android:id="@+id/listView1"
到:
android:id="@android:id/list"
还请告诉我如何制作长吐司 单击listitem时单击了(位置)listitem。
好的,使用它来点击项目。
your_listview_object.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
{
Toast.makeText(YourActivity.this, "Clicked on list item " + position, Toast.LENGTH_LONG).show();
}
});
如果您不熟悉Android,我建议您首先使用extends Activity
的简单活动尝试使用ListView,然后选择extends ListActivity
选项。
答案 1 :(得分:1)
正在扩展列表活动,这是默认&amp;由android提供,你必须使用
android:id="@android:id/list"
而不是
@+id/mylist