我试图在按下ImageButton之后显示图片,但是当我在手机上对其进行测试时,它崩溃了,并把我放在了先前的Activity上。
还有更多的活动,但是每个活动都可以正常工作。
ActionActivity.java
public class ActionActivity extends AppCompatActivity implements View.OnClickListener {
ImageButton PhotoHint;
ImageView PhotoPic;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.action);
ImageButton PhotoHint = (ImageButton) findViewById(R.id.PhotoHint);
ImageView PhotoPic = (ImageView) findViewById(R.id.Photo);
PhotoPic.setVisibility(View.INVISIBLE);
PhotoHint.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.PhotoHint:
PhotoPic.setVisibility(View.VISIBLE);
}
}
}
action.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
...
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/Photo"
android:layout_width="189dp"
android:layout_height="169dp"
android:layout_gravity="center"
android:background="@drawable/somepic"
/>
<ImageButton
android:id="@+id/PhotoHint"
android:layout_width="42dp"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"
app:srcCompat="@android:drawable/ic_menu_gallery" />
</FrameLayout>
</LinearLayout>
答案 0 :(得分:2)
现在尝试即可正常运行...
问题在于这条线
ImageButton PhotoHint = (ImageButton) findViewById(R.id.PhotoHint);
ImageView PhotoPic = (ImageView) findViewById(R.id.Photo);
它们没有被全局初始化,这就是您面临崩溃的原因。
public class ActionActivity extends AppCompatActivity implements View.OnClickListener {
ImageButton photoHint;
ImageView photoPic;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.action);
photoHint = (ImageButton) findViewById(R.id.PhotoHint);
photoPic = (ImageView) findViewById(R.id.Photo);
photoPic.setVisibility(View.INVISIBLE);
photoHint.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.PhotoHint:
photoPic.setVisibility(View.VISIBLE);
}
}
}