可在全球范围内访问的Android对象

时间:2011-07-07 06:56:09

标签: android object global

如何在活动中全局访问视图对象按钮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;     }}

5 个答案:

答案 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);
}

其余的都是一样的。

相关问题