如何在使用Java的Android Studio中从内部类启用/禁用外部类的按钮视图



我尝试的代码:

public class MainActivity extends AppCompatActivity {
static Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
}
private class xyz{
MainActivity.button.setEnabled(false);
}
}

但在这里,它显示了一个错误,并表示无法解析符号"setEnabled">。通常,它应该识别setEnabled。现在,我该如何解决这个问题?我的XML代码也供您考虑:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="xyz"/>
</LinearLayout>

非常好的问题你有很多选择,但我举两个例子:第一个创建xyz 类的承包商

public class MainActivity extends AppCompatActivity {
static Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
}
private class xyz{
xyz() {
MainActivity.button.setEnabled(false);
}
}
}

第二种方法是避免使用静态

public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);

}
private class xyz{
Button btn;
xyz() {
btn = findViewById(R.id.button);
btn.setEnabled(false);
}
}
}

最新更新