【发布时间】:2016-01-24 00:16:39
【问题描述】:
嗨,我想在 android 中做我的第一个应用程序。我想用 Contextmenu 制作列表视图,但是当我尝试编译时出现错误。这是我的代码:
instancias() 中的错误;
错误:lista.setAdapter(a);
paiseslista() 中的错误;
这是日志:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
at sergio.dialogosprueba.mainactivity.paisesLista(mainactivity.java:66)
at sergio.dialogosprueba.mainactivity.instancias(mainactivity.java:58)
at sergio.dialogosprueba.mainactivity.onCreate(mainactivity.java:30)
活动:
public class MainActivity extends AppCompatActivity {
Button vuelos,fecha;
ListView lista;
ArrayList<String> array;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
instancias();
vuelos.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(mainactivity.this, secondactivity.class);
startActivity(intent);
}
});
fecha.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(mainactivity.this, secondactivity.class);
startActivity(intent);
}
});
}
private void instancias() {
vuelos = (Button) findViewById(R.id.vuelos);
fecha = (Button) findViewById(R.id.fecha);
lista =(ListView) findViewById(R.id.lista);
array = new ArrayList<String>();
array.add("Roma");
array.add("Madrid");
array.add("Paris");
paisesLista();
registerForContextMenu(lista);
}
private void paisesLista() {
ArrayAdapter a = new ArrayAdapter(mainactivity.this,android.R.layout.list_content,array);
lista.setAdapter(a);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
getMenuInflater().inflate(R.menu.menu_main, menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
return super.onContextItemSelected(item);
}
}
【问题讨论】:
-
确切的错误信息是什么?
-
致命异常主要
-
非常有帮助,谢谢
-
对不起,我是新来的。已编辑
标签: android listview arraylist adapter