2016-02-13 103 views
2

我是新來的android開發,我想知道如何做到這一點。我有一個類名爲ListDeadlines變量,如從另一個類訪問變量Android Studio

public ArrayList<String> arrayList; 
public ArrayAdapter<String> adapter; 
public EditText txtInput; 

我想能夠訪問這些變量在不同的類。我已經嘗試過這樣,但是我在lst.txtInput lst.arrayList lst.adapter的上得到了有關如何訪問另一個類中的變量的任何想法。

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(); 
      ; 
     } 
    }); 
+0

這與Android Studio無關。嘗試讓類實現接口並將代碼放在那裏而不是使用內部類 – discodowney

+0

嗯,我正在Android Studio中開發我的應用程序,因此它與Android Studio有關。 – user3529620

+0

我的意思是它不是導致問題的Android Studio。標題是誤導性的。嘗試公共類MainActivity擴展AppCompatActivity實現View.OnClickListener。然後在OnClick方法中,你應該可以使用你的全局變量沒問題 – discodowney

回答

0

你在這裏要做的是在與lst相同的範圍內的匿名內部類中訪問變量lst。匿名的內部類是你的new View.OnClickListener。在Java中這樣做的規則要求您聲明lst爲final,以便內部類可以確定最終執行時lst不會更改。所以,你可以聲明善堂這樣的:

final ListDeadlines lst= new ListDeadlines(); 

也可以使LST包含在那裏的當前定義的方法封裝類的成員。