如何访问私有内部类的变量到oncreate()方法

时间:2014-01-02 21:35:11

标签: java android scope inner-classes

这里,如何从Activity的oncreate()方法中打印ss值?

    MainActivity extends Activity {

      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.activity_main);
        view1 = (TextView)findViewById(R.id.ss_View);

        //view.setText(String.valueOf(ss)); 
      }

      private class x {
        @Override
        public void func() {
         int ss = 3;
        }
      }
    }

2 个答案:

答案 0 :(得分:1)

你不能这样做。 SS变量仅在您的方法中本地创建。 创建ss变量作为类的字段并生成getter。 然后你可以得到你的变量。

答案 1 :(得分:1)

使ss成为x类的实例变量并添加一个getter方法:

public class InnerActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.activity_main);
        TextView view = (TextView) findViewById(R.id.clickableButtonWithBorder);

        x xInstance = new x();
        xInstance.func();
        view.setText(String.valueOf(xInstance.getSS()));

    }

    private class x {
        int ss;

        public void func() {
            ss = 3;
        }

        public Integer getSS()
        {
            return ss;
        }
    }

}