【问题标题】:Error listview items错误列表查看项目
【发布时间】: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


【解决方案1】:

paisesLista 中的列表为空。尝试调试,看看行后lista的值是什么:

lista =(ListView) findViewById(R.id.lista);

您的布局可能有问题。检查它的 id 是否为“lista”

根据您的 cmets,您想使用 second_layout.xml,因此您需要将行更改为:

setContentView(R.layout.activity_main);

到:

setContentView(R.layout. second_layout);

【讨论】:

  • 在 second_layout.xml 中添加
  • 只有 2 个问题:1. second_layout 没有在这个 Activity 中使用,2. 我仍然无法读懂你的想法并看到 xml... 尝试:setContentView(R.layout .second_layout);
  • 你能与我们分享秘密的 second_layout.xml 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多