Android主要活动对象访问

时间:2014-08-27 17:27:08

标签: android

我是Android新手并遇到了问题。我想从MainActivity类中分离OnClickListener,但我不知道除了使用static之外如何访问Main Activity类中的Objects。对解决方案感到高兴。

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");

}
}

不起作用。 我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:2)

我不明白为什么你会希望他们像那样分开。

如果您不想填写活动的onCreate方法,只需在类中实现监听器,如下所示:

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

然后使用this

引用侦听器
this.btn.setOnClickListener(this);

答案 1 :(得分:1)

  1. MainActivity是一个Activity类。你不应该有相同的构造函数。您不应该实例化一个活动类。您只在清单文件

  2. 中声明活动
  3. 您可以在this.listener = new MyListener();本身

  4. 中拥有onCreate
  5. MyListener设为MainActivity

  6. 的内部类