错误 - android没有零参数构造函数 - listView

时间:2015-10-13 14:50:21

标签: android listview constructor

在我的主要活动中,有按钮。单击它时,它会打开一个不同活动的列表视图(即ListView)。当我尝试单击按钮时,应用程序崩溃并显示上述错误。我完全不知道如何解决它。请帮助我。

在主活动代码中,按钮侦听器是 -

            b3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                I = new Intent(LoginActivity.this, ListView.class);
                startActivity(I);
            }
        });

然后在另一个名为 - ListView的活动中,代码为 -

public class ListView extends AppCompatActivity {
android.widget.ListView lv;
BroadReceive br;
IntentFilter IF;
Intent I;
Button b;
LoginActivity la;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_view);
    lv = (android.widget.ListView) findViewById(R.id.listView1);
    b = (Button) la.findViewById(R.id.button3);
    IF = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
    registerReceiver(br.PutListOfWiFi(lv), IF);
    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // TODO Auto-generated method stub
            String item;
            I = new Intent(ListView.this, LoginActivity.class);
            startActivity(I);
            item = lv.getItemAtPosition(position).toString();
            b.setText(item);
        }

    });
}

}

请帮助我!!

ErrorLog(LogCat)主要活动的名称是(LoginActivity) -

10-14 14:44:20.977:E / AndroidRuntime(7404):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.projectwifi / com.example.projectwifi.ListViewNames}:java.lang。 NullPointerException:尝试在空对象引用上调用虚拟方法'android.view.View com.example.projectwifi.LoginActivity.findViewById(int)'

我删除了构造函数,现在它出现了不同的错误。请评论。我是这门语言的新手。请帮忙。

2 个答案:

答案 0 :(得分:3)

您不能重载扩展Activity的类的构造函数。摆脱

public ListView(Button button) {

它的存在毫无意义。您无法在扩展new

的类上使用Activity运算符

答案 1 :(得分:0)

解决方案是删除构造函数,当需要setOnClickListener按钮时,使用view.findViewById(int)来查找它。

P / s您必须严格遵循developer.android.com上的指南。您不应该像在标准Java应用程序中那样对待应用程序,因为Android框架为应用程序做了很多事情(组件)。

更新

您在ListView类中是一个Activity,然后当您在该活动上调用findViewById(int)时,它将查找该视图,如果该活动是通过之前调用setContentView(int)设置的。

在您的情况下,请确保您在setContentView()上设置的R.layout.something中存在android.widget.ListView。

如果在视图上调用view.findViewById(),则只能在该视图及其子视图上找到它。