如何在活动中全局访问视图对象按钮textviews ...我使用了下面的代码,但它现在正在工作..
private View dummy = (View) View.inflate(this, R.layout.main, null);
private TextView p1 = (TextView)dummy.findViewById(R.id.player1other);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(dummy);
}
.....
.....
public OnClickListener mCorkyListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.player1:
p1.setText(Integer.toString(scores.scores[0]));
break; }}
答案 0 :(得分:1)
在启动活动之前,您无法参考活动。你可以用这种方式完成你想要的工作
private View dummy;
private TextView p1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(dummy);
dummy = (View) View.inflate(this, R.layout.main, null);
p1 = (TextView)dummy.findViewById(R.id.player1other);
}
.....
.....
public OnClickListener mCorkyListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.player1:
p1.setText(Integer.toString(scores.scores[0]));
break; }}
答案 1 :(得分:0)
将您的观点声明为类变量
Class A{
EditText edit1;
}
edit1可以在班级的任何地方访问
答案 2 :(得分:0)
您需要先致电setContentView()
,然后才能findViewByID()
使findViewByID()
知道在哪里查找视图。像这样:
private TextView p1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
p1 = (TextView)dummy.findViewById(R.id.player1other);
}
即。首先只声明p1
,然后在setContentView()
中调用适当的onCreate()
,然后初始化p1
。
答案 3 :(得分:0)
而不是使用这一行......
private View dummy = (View) View.inflate(this, R.layout.main, null);
使用此
LayoutInflater l1 = this.getLayoutInflater();
private View dummy = l1.inflate(R.layout.main, null);
答案 4 :(得分:0)
试试这个:
private TextView p1;
@Override
public void onCreate(savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
p1 = (TextView) findViewById(R.id.player1other);
}
其余的都是一样的。