我是Android开发的新手,我想知道如何做到这一点。我有一个名为ListDeadlines的类,其变量如
public ArrayList<String> arrayList;
public ArrayAdapter<String> adapter;
public EditText txtInput;
我希望能够在不同的类中访问这些变量。我已经尝试过这样的做法,但是我在lst.txtInput lst.arrayList lst.adapter
Variable 'lst' is accessed from within inner class, needs to be declared final.
说 ListDeadlines lst= new ListDeadlines();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
lst.txtInput=(EditText)findViewById(R.id.txtinput);
Button btAdd=(Button)findViewById(R.id.btnAdd);
btAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newItem = lst.txtInput.getText().toString();
lst.arrayList.add(newItem);
lst.adapter.notifyDataSetChanged();
;
}
});
时出现了一个错误的错误。任何人都对如何在另一个类中访问变量有任何想法。
./testfork.c: line 6: syntax error near unexpected token `('
./testfork.c: line 6: `int main(int argc, char *argv[])'
答案 0 :(得分:0)
您在这里尝试做的是从与lst相同的范围内的匿名内部类中访问变量lst。匿名内部类是您的new View.OnClickListener
。在Java中执行此操作的规则要求您将lst声明为final
,以便内部类可以确定lst在最终执行时不会更改。所以,你可以这样声明你的事:
final ListDeadlines lst= new ListDeadlines();
或者你可以使lst成为包含其当前定义的方法的封闭类的成员。