相关疑难解决方法(0)

变量在内部类中访问.需要宣布最终

所以标题说明了一切.我的内部出现了编译错误onClick.

这是代码.

public class fieldsActivity extends Activity {

Button addSiteButton;
Button cancelButton;
Button signInButton;


/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // to create a custom title bar for activity window
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.fields);
    // use custom layout title bar
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.topbar);

    Pager adapter = new Pager();
    ViewPager mPager = (ViewPager) findViewById(R.id.fieldspager);
    mPager.setAdapter(adapter);
    mPager.setCurrentItem(1);



    addSiteButton = (Button) findViewById(R.id.addSiteButton);
    addSiteButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
           mPager.setCurrentItem(2, true); …
Run Code Online (Sandbox Code Playgroud)

java android

107
推荐指数
5
解决办法
17万
查看次数

内部类中的构造函数(实现接口)

我将如何为实现接口的内部类编写构造函数?我知道我可以创建一个全新的课程,但我认为必须有一种方法可以做到这一点:

JButton b = new JButton(new AbstractAction() {

    public AbstractAction() {
        super("This is a button");                        
    }


    public void actionPerformed(ActionEvent e) {
        System.out.println("button clicked");
    }
}); 
Run Code Online (Sandbox Code Playgroud)

当我输入它时,它不会将AbstractAction方法识别为构造函数(编译器要求返回类型).有没有人有想法?

java constructor anonymous-inner-class inner-classes

21
推荐指数
2
解决办法
2万
查看次数

从匿名类的角度看,字段由局部变量遮蔽

我正在尝试运行此代码:

class A {
  int x = 123;
  public void f(int x) {
    new Runnable() {
      public void run() {
        System.out.println(x);
      }
    }.run();
  }
  static {
    A a = new A();
    a.f(33);
  }
}
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

$ javac A.java && java A
A.java:6: local variable x is accessed from within inner class; needs to be declared final
        System.out.println(x);
                           ^
1 error
Run Code Online (Sandbox Code Playgroud)

x参数不是final,所以它不应该是从匿名类访问,但代码编译失败.看起来该println行试图使用x参数而不是x字段.为什么?我怎么能告诉它我想要这个x领域?

java shadowing

0
推荐指数
1
解决办法
145
查看次数