AlertDialog上的Android ListView和EditView崩溃

时间:2013-09-18 17:21:26

标签: java android

我在调试时测试我的应用程序并在此行崩溃:

listAdapter = new ArrayAdapter<String>(this, R.layout.cd_edittext_for_listview, planetList);

出现此错误: 在onCreate()

之前,活动无法使用系统服务

我在这段代码中解决了这个错误(用上下文改变了这个):     listAdapter = new ArrayAdapter(promptsView.getContext(),R.layout.cd_edittext_for_listview,planetList); 并使用“EditText”更改XML文件“EditView”!*


我对“editText_for_listview.xml”项目有这个布局:

<EditView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/rowEditView"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:padding="10dp"
  android:textSize="16sp">
</EditView>

我的主要布局是“items_listview.xml”

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginTop="10dp"
    xmlns:android="http://schemas.android.com/apk/res/android">

  <ListView
      android:layout_marginTop="10dp"
      android:layout_marginBottom="10dp"
      android:layout_marginLeft="10dp"
      android:layout_marginRight="10dp"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/mylistview"
      android:layout_gravity="center" />

</LinearLayout>

代码是这样的:

public void _ShowItems(String sTitle,android.content.Context context) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle(sTitle);
    LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
    final View promptsView = inflater.inflate(R.layout.items_listview, null);

    ListView mainListView ;
    ArrayAdapter<String> listAdapter ;
    mainListView = (ListView) promptsView.findViewById( R.id.editText_for_listview );

    String[] planets = new String[] { "Test1", "Test2", "Test3" };
    ArrayList<String> planetList = new ArrayList<String>();
    planetList.addAll( Arrays.asList(planets) );

    listAdapter = new ArrayAdapter<String>(this, R.layout.cd_edittext_for_listview, planetList);

    // Set the ArrayAdapter as the ListView's adapter.
    mainListView.setAdapter( listAdapter );
    builder.setView(promptsView)
            .setPositiveButton("One", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                }
            })
            .setNegativeButton("Two", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                }
            });

    builder.show();
}
你能帮帮我吗? 哪里错了?

由于

2 个答案:

答案 0 :(得分:0)

显然,您正在尝试在调用Activity的onCreate()方法之前使用Activity Context。尝试将对_ShowItems()的调用移至onResume()方法。

答案 1 :(得分:0)

您能否显示更多活动代码?你可以在一个没有初始化上下文的地方调用这个方法,但是一旦我们更好地了解了这个活动,就会发现其他东西。

我会对此作出评论,但我没有这样的声誉。