[英]Android creating listview not working
我是Android的新手,我正在创建一个简单的应用程序,该应用程序在listview中显示状态名称列表,当我单击任何textview时,该状态的大写字母应在textview中。 这是代码:
问题是,每当我尝试运行它时,它就没有运行:出现“应用程序意外关闭”消息。 请帮我哪里做错了。
这是我的XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/txtv1"
/>
<ListView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/l"
/>
</LinearLayout>
这是我的活动代码
`import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
public class LVjavaActivity extends Activity implements OnItemClickListener, OnItemSelectedListener{
/** Called when the activity is first created. */
TextView t;
ListView lv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv=(ListView)findViewById(R.id.l);
t=(TextView)findViewById(R.id.txtv1);
ArrayList<String> state=new ArrayList<String>();
state.add("Andhra Pradesh");
state.add("Bihar");
state.add("Goa");
state.add("Orrisa");
state.add("Punjab");
ArrayAdapter <String> adp=new ArrayAdapter<String>(this, R.layout.mytxtv, state);
lv.setAdapter(adp);
lv.setOnItemClickListener(this);
lv.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
switch(arg2){
case 0:
t.setText("Hyderabad");
break;
case 1:
t.setText("Patna");
break;
case 2:
t.setText("Panaji");
break;
case 3:
t.setText("Bhuvaneshwar");
break;
case 4:
t.setText("Chandigarh");
break;
}
}
}`
这是Logcat
11-06 11:56:08.086: ERROR/ArrayAdapter(1169): You must supply a resource ID for a TextView
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): FATAL EXCEPTION: main
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.ListView.onMeasure(ListView.java:1127)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.View.measure(View.java:8313)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.View.measure(View.java:8313)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.View.measure(View.java:8313)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.View.measure(View.java:8313)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.View.measure(View.java:8313)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.os.Handler.dispatchMessage(Handler.java:99)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.os.Looper.loop(Looper.java:123)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at java.lang.reflect.Method.invokeNative(Native Method)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at java.lang.reflect.Method.invoke(Method.java:507)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at dalvik.system.NativeStart.main(Native Method)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): Caused by: java.lang.ClassCastException: android.widget.LinearLayout
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:340)
11-06 11:56:08.116: ERROR/AndroidRuntime(1169): ... 29 more
11-06 13:26:25.855: ERROR/ArrayAdapter(3397): You must supply a resource ID for a TextView
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): FATAL EXCEPTION: main
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.ListView.onMeasure(ListView.java:1127)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.View.measure(View.java:8313)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.View.measure(View.java:8313)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.View.measure(View.java:8313)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.View.measure(View.java:8313)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.View.measure(View.java:8313)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.os.Handler.dispatchMessage(Handler.java:99)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.os.Looper.loop(Looper.java:123)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at java.lang.reflect.Method.invokeNative(Native Method)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at java.lang.reflect.Method.invoke(Method.java:507)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at dalvik.system.NativeStart.main(Native Method)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): Caused by: java.lang.ClassCastException: android.widget.LinearLayout
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:340)
11-06 13:26:25.895: ERROR/AndroidRuntime(3397): ... 29 more
更改
lv=(ListView)findViewById(R.id.l);
t=(TextView)findViewById(R.id.txtv1);
至
lv=(ListView)findViewById(R.id.lv1);
t=(TextView)findViewById(R.id.tv1);
您绑定了错误的ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.