【发布时间】:2019-07-24 14:14:57
【问题描述】:
将数据从一个类传递到另一个类时,我的应用程序不显示任何内容。我通过调试器发现我的 ArrayList 没有从类中获得正确的值。 我正在使用以下功能发送数据:
public class Adaugare extends AppCompatActivity {
private ListView myListView;
private NumeAdapter numeAdapter;
String inume;
int ivarsta;
Intent intent = new Intent();
private ArrayList persoanaArrayList = new ArrayList<>();
public ArrayList getPersoanaArrayList() {
return persoanaArrayList;
}
public int getPersoanaArrayListsize() {
return persoanaArrayList.size();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_adaugare);
myListView = (ListView) findViewById(R.id.persoana_list);
Button btn_fin = (Button) findViewById(R.id.btn_fin);
btn_fin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText nume_edit_text = (EditText) findViewById(R.id.ins_nume);
EditText varsta_edit_text = (EditText) findViewById(R.id.ins_var);
ivarsta = Integer.parseInt(varsta_edit_text.getText().toString());
inume = nume_edit_text.getText().toString();
persoanaArrayList.add(new Persoana(inume, ivarsta));
}
});
}
}
并通过以下方式接收它:
public class Afisare extends AppCompatActivity {
ListView myListView;
NumeAdapter numeAdapter;
Adaugare ad = new Adaugare();
int cate;
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_afisare);
myListView = (ListView) findViewById(R.id.persoana_list);
ArrayList<Persoana> persoanaArrayList = new ArrayList<Persoana>(ad.getPersoanaArrayList());
numeAdapter = new NumeAdapter(this, persoanaArrayList);
myListView.setAdapter(numeAdapter);
}
类 Persoana 是:
public class Persoana {
private String nume;
private int varsta;
Persoana(String inume, int ivar) {
this.nume = inume;
this.varsta = ivar;
}
public String getNume() {
return nume;
}
public int getVarsta() {
return varsta;
}
public void setNume(String nume) {
this.nume = nume;
}
public void setVarsta(int varsta) {
this.varsta = varsta;
}
}
Persoana 是主类,所有内容都保存在其中。 ad 是 Adaugare 的一个对象,Adaugare 是我从中获取 getPersoanaArrayList 代码的类。在调试时,一些值出现在 ad,即 Adaugare @4556,而 persoanaArrayList 仍然是 null。 我需要 persoanaArrayList 以便我可以初始化我的适配器和 listView。使用调试器逐步测试代码中的所有其他内容似乎都很好。
【问题讨论】:
-
显示与问题相关的所有代码
-
欢迎来到 Stack Overflow!我们愿意帮助你,但我们不是千里眼。请花时间阅读tour 并阅读How to Ask,然后阅读edit 相应的问题。请创建a Minimal, Complete, and Verifiable example,并提供示例输入、输出和您收到的错误消息(如果有)。这将帮助我们确定正在发生的事情并提高您获得答案的机会。
-
Adaugare ad = new Adaugare();据我所知:这不是在这种情况下创建新类的方式,因为Adaugare的onCreate不会被调用,并且它的列表不会被填满。 -
如果您将此标记为与 Android 相关,我觉得您将获得更好的支持
标签: java android function oop arraylist