Reputation: 61
I'm trying to show pic after pressing ImageButton, but when I test it on my phone it just crashes and drops me on previous Activity.
There are some more Activities, but each of them works normally.
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>
Upvotes: 1
Views: 87
Reputation: 6035
try now it will work fine...
the problem was with this line
ImageButton PhotoHint = (ImageButton) findViewById(R.id.PhotoHint);
ImageView PhotoPic = (ImageView) findViewById(R.id.Photo);
they were not globally initialized that's why you were facing crash.!
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);
}
}
}
Upvotes: 2