【问题标题】:Android Studio. How to access another button in a OnClick method?安卓工作室。如何访问 OnClick 方法中的另一个按钮?
【发布时间】:2017-01-16 15:34:30
【问题描述】:
所以我想将 OnClick 方法连接到按钮 A,但是当我单击该按钮 A 时,我想要它的其他按钮(B、C、D、F)将变得可见。但是当我运行代码时它崩溃了,任何人都可以帮助我吗?
public void OnClick(View v)
{
b.setVisibility(View.VISIBLE);
c.setVisibility(View.VISIBLE);
d.setVisibility(View.VISIBLE);
f.setVisibility(View.VISIBLE);
}
我将此方法添加到我在activity_main.xml 中的按钮A。
【问题讨论】:
标签:
javascript
android
android-studio
【解决方案1】:
使用这个完整的代码:
ImageButton imB1, op1, op2, op3, op4, op5, op6, op7, op8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imB1 = (ImageButton) findViewById(R.id.imgB1);
op1 = (ImageButton) findViewById(R.id.esc1);
op2 = (ImageButton) findViewById(R.id.esc2);
op3 = (ImageButton) findViewById(R.id.esc3);
op4 = (ImageButton) findViewById(R.id.esc4);
op5 = (ImageButton) findViewById(R.id.esc5);
op6 = (ImageButton) findViewById(R.id.esc6);
op7 = (ImageButton) findViewById(R.id.esc7);
op8 = (ImageButton) findViewById(R.id.esc8);
}
public void Clicked(View v) {
op1.setVisibility(View.VISIBLE);
op2.setVisibility(View.VISIBLE);
op3.setVisibility(View.VISIBLE);
op4.setVisibility(View.VISIBLE);
op5.setVisibility(View.VISIBLE);
op6.setVisibility(View.VISIBLE);
op7.setVisibility(View.VISIBLE);
op8.setVisibility(View.VISIBLE);
}
并在您的 xml 中进行更改:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/checkbox_off_background"
android:layout_marginLeft="62dp"
android:layout_marginStart="62dp"
android:layout_marginTop="15dp"
android:id="@+id/imgB1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="Clicked" /> //here changes are made
【解决方案2】:
您的第一个按钮应如下所示:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/checkbox_off_background"
android:layout_marginLeft="62dp"
android:layout_marginStart="62dp"
android:layout_marginTop="15dp"
android:id="@+id/imgB1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="onClick" />
根据最后一行,您在 MainActivity 中的方法应如下所示(OnClick 的 o 小写)
public void onClick(View v) {
op1.setVisibility(View.VISIBLE);
op2.setVisibility(View.VISIBLE);
op3.setVisibility(View.VISIBLE);
op4.setVisibility(View.VISIBLE);
op5.setVisibility(View.VISIBLE);
op6.setVisibility(View.VISIBLE);
op7.setVisibility(View.VISIBLE);
op8.setVisibility(View.VISIBLE);
}
如果没有错误日志,我们无法为您提供更准确的帮助