Issue
I am comparing the imageview with drawable image. If it is same, then I need to write a logic.
If it is not same, I need to handle another logic.
So what I tried is,
private ImageView emailIcon, phoneIcon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
contentView = inflater.inflate(R.layout.activity_summary_activities, null);{
emailIcon = (ImageView) findViewById(R.id.email_icon);
phoneIcon = (ImageView) findViewById(R.id.sms_icon);
phoneIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
phoneIcon.setBackgroundResource(R.drawable.round);
emailIcon.setBackgroundResource(R.drawable.ic_mark_white);
}
});
emailIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
phoneIcon.setBackgroundResource(R.drawable.ic_mark_white);
emailIcon.setBackgroundResource(R.drawable.round);
}
});
submitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (phoneIcon.getDrawable().getConstantState() == SummaryActivities.this
.getResources().getDrawable(R.drawable.ic_mark_white)
.getConstantState()) {
Log.e("going here", "going here");
}
}
But I am getting crash as,
java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable$ConstantState android.graphics.drawable.Drawable.getConstantState()' on a null object reference at com.view.SummaryActivities$5.onClick(SummaryActivities.java:130)
in xml:
<ImageView
android:id="@+id/sms_icon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="32dp"
android:layout_marginTop="3dp"
android:background="@drawable/ic_mark_white" />
<ImageView
android:id="@+id/email_icon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="32dp"
android:layout_marginTop="2dp"
android:background="@drawable/ic_mark_white" />
Solution
Use setImageResource insted of setBackgroundResource
private ImageView emailIcon, phoneIcon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
contentView = inflater.inflate(R.layout.activity_summary_activities,
null);{
emailIcon = (ImageView) findViewById(R.id.email_icon);
phoneIcon = (ImageView) findViewById(R.id.sms_icon);
phoneIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
phoneIcon.setImageResource(R.drawable.round);
emailIcon.setImageResource(R.drawable.ic_mark_white);
}
});
emailIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
phoneIcon.setImageResource(R.drawable.ic_mark_white);
emailIcon.setImageResource(R.drawable.round);
}
});
submitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (phoneIcon.getDrawable().getConstantState() ==
SummaryActivities.this
.getResources().getDrawable(R.drawable.ic_mark_white)
.getConstantState()) {
Log.e("going here", "going here");
}
}
Answered By - mehul chauhan
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.