如何使用 Java 在 Android Studio 中从内部 class enable/disable 外部 class 的按钮视图?
How to enable/disable a Button view of outer class from inner class in Android Studio with Java?
我试过的代码:
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>
很好的问题
你有很多选择,但我会给你两个例子:
第一个为 class x
创建承包商
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);
}
}
}
我试过的代码:
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>
很好的问题 你有很多选择,但我会给你两个例子: 第一个为 class x
创建承包商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);
}
}
}