繁体   English   中英

Android创建列表视图不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM