为什么符号“ add”无法解析?

时间:2020-08-30 08:35:05

标签: java android

我想创建一个数组列表,但是add方法不起作用。

package com.zaination.listview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ListView;

import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    ListView VarListView = (ListView) findViewById(R.id.ListView);
    ArrayList<String> VarArrayList = new ArrayList<String>();
    VarArrayList.add("Zain");
    VarArrayList.add("Sarmad");
    VarArrayList.add("Aanish");
    VarArrayList.add("Haider");

}

3 个答案:

答案 0 :(得分:1)

如果将代码放入onCreate(或任何其他)方法中,则可能会起作用。

答案 1 :(得分:0)

需要像这样更新。

package com.zaination.listview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

ListView VarListView = (ListView) findViewById(R.id.ListView);
ArrayList<String> VarArrayList = new ArrayList<String>();
VarArrayList.add("Zain");
VarArrayList.add("Sarmad");
VarArrayList.add("Aanish");
VarArrayList.add("Haider");
}

}

另一个提示属性名称VarArrayList不遵循Java命名约定,应以小写字母varArrayList

开头

答案 2 :(得分:0)

您在任何方法之外编写了代码。它必须采用任何一种方法。

最简单的方法是将其直接写入onCreate方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ListView VarListView = (ListView) findViewById(R.id.ListView);
    ArrayList<String> VarArrayList = new ArrayList<String>();
    VarArrayList.add("Zain");
    VarArrayList.add("Sarmad");
    VarArrayList.add("Aanish");
    VarArrayList.add("Haider");
}

PS
您可以做一些小的改进(Android Studio也部分推荐):

  • 您可以忽略强制转换(ListView),因为它是多余的
  • 您可以在初始化时省略ArrayList标识符string
  • 您应该使用lower camel case命名约定(VarArrayList)来命名对象(例如varArrayList):