2014-08-27 218 views
0

我是Android新手,遇到問題。我想單獨從MainActivity類的OnClickListener,但我不知道如何訪問主Activity類中的對象,除了使用靜態。會很高興解決方案。Android主要活動對象訪問

public class MainActivity extends ActionBarActivity { 

public Button btn; 
public TextView tv; 
public MyListener listener; 

public MainActivity() { 
    this.listener = new MyListener(); 
} 

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



    this.btn = (Button) findViewById(R.id.btn1);  
    this.tv = (TextView) findViewById(R.id.textView1); 
    this.btn.setOnClickListener(listener); 




} 
} 


public class MyListener implements OnClickListener { 

MainActivity activity; 
@Override 
public void onClick(View v) { 
    activity.tv.setText("Hi"); 

} 
} 

不工作。 我將不勝感激任何幫助。

+0

我認爲Java不允許在一個單一的兩個公共課文件 – Bineesh 2014-08-27 17:31:19

+0

你爲什麼要分開? – Raghunandan 2014-08-27 17:44:29

回答

2

我不明白爲什麼你會希望他們分開這樣的。

如果你不想你的補習班活動的onCreate方法,只需要實現像這樣在你的類監聽器:

public class MainActivity extends ActionBarActivity implements OnClickListener { 
    ... 
} 

然後用this引用聽衆:

this.btn.setOnClickListener(this); 
+0

謝謝!很有幫助。 – unknown 2014-08-28 14:31:00

1
  1. MainActivity是一個Activity類。你不應該有相同的構造函數。你不應該實例化一個活動類。您只需在清單文件中聲明活動

  2. 您可以this.listener = new MyListener();onCreate本身

  3. MyListener一個內部類的MainActivity

+0

謝謝!很有幫助。 – unknown 2014-08-28 14:30:13