Java 在android中将项目添加到listview时,应用程序崩溃

Java 在android中将项目添加到listview时,应用程序崩溃,java,android,listview,Java,Android,Listview,我必须使用android中的arrayadapter将项目添加到listview中,因此完成了编码,如果我运行该项目,应用程序将强制关闭,甚至在清单中提到了该活动,但仍然无法找到崩溃的确切原因 public class Jobs extends ListActivity { private TextView selection; private static final String[] items={"Computer Hardware", "Featured", "Information

我必须使用android中的arrayadapter将项目添加到listview中,因此完成了编码,如果我运行该项目,应用程序将强制关闭,甚至在清单中提到了该活动,但仍然无法找到崩溃的确切原因

public class Jobs extends ListActivity {
 private TextView selection;

private static final String[] items={"Computer Hardware", "Featured", "Information    Technology", "Software", "Technical"

 };
 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.jobs);
    selection = (TextView)findViewById(R.id.selection);
    ListView list = (ListView)findViewById(android.R.id.list);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            R.layout.jobs, items);
        setListAdapter(adapter);    


  }
public void onListItemClick(ListView parent, View v, int position, long id)
{
    selection.setText(items[position]);
}
 }

您现在没有初始化您正在使用的包含null的选择。所以你得到了NPE。

public void onListItemClick(ListView parent, View v, int position, long id)
{
    >>>>selection.setText(items[position]);
}
试试这个

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.jobs);
    selection = (TextView)findViewById(R.id.selection);  //Write this
    //Rest of code
}
公共类作业扩展了ListActivity{
私有文本视图选择;
私有静态最终字符串[]项={“计算机硬件”、“特色”、“信息技术”、“软件”、“技术”
};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
ListView ListView=getListView();//使用android的defailt ListView
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.jobs、items);
setListAdapter(适配器);
}
public void onListItemClick(ListView父视图、视图v、整数位置、长id)
{
selection.setText(项目[位置]);
}
}

在使用列表活动时,您应该使用默认列表…而不是自定义列表名称

您必须在
onCreate()
中初始化
textview


在ListActivity中,您不需要在活动中获取ListView。它会自动从xml获取。您只需为列表视图提供一个定义的id,即android:id=“@android:id/list”,在adapter中,您还可以提供一个预定义的id。您可以这样编写程序:

jobs.xml

   <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
  <ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
     />
   <TextView android:id="@+id/textSelected"
     android:layout_alignParentBottom="true"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
      />
    </RelativeLayout>

在你的活动中:

  private TextView selection;

    private static final String[] items={"Computer Hardware", "Featured", "Information    Technology", "Software", "Technical"

     };
     @Override
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.jobs);
    selection=(TextView)findViewById(R.id.textSelected);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, items);
        setListAdapter(adapter);    


      }
     @Override
     public void onListItemClick(ListView parent, View v, int position, long                 id)
     {
    selection.setText(items[position]);
      }
  }
私有文本视图选择;
私有静态最终字符串[]项={“计算机硬件”、“特色”、“信息技术”、“软件”、“技术”
};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
selection=(TextView)findViewById(R.id.textSelected);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,items);
setListAdapter(适配器);
}
@凌驾
public void onListItemClick(ListView父视图、视图v、整数位置、长id)
{
selection.setText(项目[位置]);
}
}

希望这能解决您的问题。

日食中的错误是什么请发布您的错误代码以获取更多信息helps@DDA试试我的解决方案,它可能会对你有所帮助。我已经初始化了选择。。n还编写了这段代码,,,@tgmcians在您初始化的地方。正如我看到的您的上述代码一样,我没有找到。无论如何,仍然会出现错误??您没有在androidmanifest.xml中定义正确的映射。检查清单中的com.exm.com.Jobs活动映射。我没有向下投票,兄弟,不知道谁做了@Captain americai如果它有效,请向上投票,因为它降低了我的分数朋友单击我初始化的向上箭头,但它仍然崩溃
public class Jobs extends ListActivity {
 private TextView selection;

private static final String[] items={"Computer Hardware", "Featured", "Information    Technology", "Software", "Technical"

 };
 @Override
 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
ListView listView = getListView(); //use defailt listview of android
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.jobs, items);
    setListAdapter(adapter);    


  }
  public void onListItemClick(ListView parent, View v, int position, long id)
 {
selection.setText(items[position]);
  }
  }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
ListView list = (ListView)findViewById(R.id.list);

selection = (TextView)findViewById(R.id.selection);

}
   <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
  <ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
     />
   <TextView android:id="@+id/textSelected"
     android:layout_alignParentBottom="true"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
      />
    </RelativeLayout>
  private TextView selection;

    private static final String[] items={"Computer Hardware", "Featured", "Information    Technology", "Software", "Technical"

     };
     @Override
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.jobs);
    selection=(TextView)findViewById(R.id.textSelected);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, items);
        setListAdapter(adapter);    


      }
     @Override
     public void onListItemClick(ListView parent, View v, int position, long                 id)
     {
    selection.setText(items[position]);
      }
  }