Android 错误列表视图项

Android 错误列表视图项,android,listview,arraylist,adapter,Android,Listview,Arraylist,Adapter,您好,我正在尝试在android中执行我的第一个应用程序。我想使用Contextmenu创建ListView,但当我尝试编译时出现错误。这是我的代码: instancias()中的错误 错误:lista.setAdapter(a) PaiseLista()中存在错误 以下是日志: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.se

您好,我正在尝试在android中执行我的第一个应用程序。我想使用Contextmenu创建ListView,但当我尝试编译时出现错误。这是我的代码:

instancias()中的错误

错误:lista.setAdapter(a)

PaiseLista()中存在错误

以下是日志:

 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);
    }
}
public类MainActivity扩展了AppCompatActivity{
Button vuelos,fecha;
ListView lista;
数组列表数组;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
instancias();
vuelos.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
意向意向=新意向(mainactivity.this,secondactivity.class);
星触觉(意向);
}
});
fecha.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
意向意向=新意向(mainactivity.this,secondactivity.class);
星触觉(意向);
}
});
}
私有void instancias(){
vuelos=(按钮)findViewById(R.id.vuelos);
fecha=(按钮)findviewbyd(R.id.fecha);
lista=(ListView)findViewById(R.id.lista);
数组=新的ArrayList();
数组。添加(“罗马”);
数组。添加(“马德里”);
数组。添加(“巴黎”);
paisesLista();
registerForContextMenu(lista);
}
私有无效paisesLista(){
ArrayAdapter a=新的ArrayAdapter(mainactivity.this,android.R.layout.list\u content,array);
lista.setAdapter(a);
}
@凌驾
public void onCreateContextMenu(ContextMenu菜单,视图v,ContextMenu.ContextMenuInfo菜单信息){
getMenuInflater().充气(右菜单菜单菜单主菜单);
super.onCreateContextMenu(menu,v,menuInfo);
}
@凌驾
公共布尔值onContextItemSelected(MenuItem项){
返回super.onContextItemSelected(项目);
}
}

lista在PaiseLista中为空。尝试调试,并查看该行后lista的值:

lista =(ListView) findViewById(R.id.lista);
你的布局可能有问题。检查其id是否为“lista”

根据您的评论,您希望使用second_layout.xml,因此需要将行更改为:

setContentView(R.layout.activity_main);
致:


确切的错误信息是什么?致命异常主要非常有用,谢谢,我是这里的新成员。在second_layout.xml中添加了Editedits。这只有两个问题:1。此活动中未使用第二个_布局,2。我还是看不懂你的心思,也看不到xml。。。Try:setContentView(R.layout.second_layout);你能和我们分享秘密second_layout.xml吗?
setContentView(R.layout. second_layout);