我是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");
}
}
不起作用。 我将不胜感激任何帮助。
答案 0 :(得分:2)
我不明白为什么你会希望他们像那样分开。
如果您不想填写活动的onCreate
方法,只需在类中实现监听器,如下所示:
public class MainActivity extends ActionBarActivity implements OnClickListener {
...
}
然后使用this
:
this.btn.setOnClickListener(this);
答案 1 :(得分:1)
MainActivity是一个Activity类。你不应该有相同的构造函数。您不应该实例化一个活动类。您只在清单文件
您可以在this.listener = new MyListener();
本身
onCreate
将MyListener
设为MainActivity