私は初心者です。ユーザーが画像をクリックしたときに画像の説明(AlertDialogを使用して)を表示したい。しかし、AlertDialogボックスは、他のイメージもクリックすると、最初に保存されたメッセージを常に表示しますか?他の画像をクリックしてもリセットされません。誰でも私を助けてください?andriodで別のイメージをクリックするたびに、AlertDialogでメッセージを変更する方法は?
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Spinner spinner;
ImageView imageView,imgpt1,imgpt2,imgpt3,imgpt4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner=(Spinner)findViewById(R.id.spinner);
imageView=(ImageView)findViewById(R.id.imageViewspinner);
imgpt1=(ImageView)findViewById(R.id.imagepart1);
imgpt2=(ImageView)findViewById(R.id.imagepart2);
imgpt3=(ImageView)findViewById(R.id.imagepart3);
imgpt4=(ImageView)findViewById(R.id.imagepart4);
imgpt1.setOnClickListener(this);
imgpt2.setOnClickListener(this);
imgpt3.setOnClickListener(this);
imgpt4.setOnClickListener(this);
List<String> categories=new ArrayList<String>();
categories.add("Front View");
categories.add("Side View");
categories.add("Back View");
categories.add("Top View");
ArrayAdapter<String> stringArrayAdapter=new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,categories);
stringArrayAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinner.setAdapter(stringArrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(position==0)
{
imageView.setImageResource(R.drawable.carfrontview);
imgpt1.setImageResource(R.drawable.frontbumpers);
imgpt1.setTag("frontbumpers");
imgpt2.setImageResource(R.drawable.frontfenders);
imgpt2.setTag("frontfenders");
imgpt3.setImageResource(R.drawable.frontgrilles);
imgpt2.setTag("frontgrilles");
imgpt4.setImageResource(R.drawable.frontheadlight);
imgpt2.setTag("frontheadlight");
}
else if(position==1)
{
imageView.setImageResource(R.drawable.carsideview);
imgpt1.setImageResource(R.drawable.sidebumpers);
imgpt2.setImageResource(R.drawable.sidedoor);
imgpt3.setImageResource(R.drawable.sidefuelcovers);
imgpt4.setImageResource(R.drawable.sidemirror);
}
else if(position==2)
{
imageView.setImageResource(R.drawable.carbackview);
imgpt1.setImageResource(R.drawable.backrearbumpers);
imgpt2.setImageResource(R.drawable.backrearmirror);
imgpt3.setImageResource(R.drawable.backrearwindow);
imgpt4.setImageResource(R.drawable.backtaillights);
}
else if(position==3)
{
imageView.setImageResource(R.drawable.cartopview);
imgpt1.setImageResource(R.drawable.topbattery);
imgpt2.setImageResource(R.drawable.topfuelinjection);
imgpt3.setImageResource(R.drawable.topoildipstick);
imgpt4.setImageResource(R.drawable.topradiator);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
@Override
public void onClick(View v) {
String message="";
if(imgpt1.getTag()=="frontbumpers")
{
message="This is Bumper";
}
else if(imgpt1.getTag()=="frontfenders")
{
message="This is Fenders";
}
else if(imgpt1.getTag()=="frontheadlight")
{
message="This is headlight";
}
else if(imgpt1.getTag()=="frontgrilles")
{
message="This is grilles";
}
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Car Parts");
builder.setMessage(message);
builder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).create().show();
}
}
避けてくださいこれらの答えは「均等」な提案である。誰もが間違った答えを持っています。チェックしている 'view'に問題があります。私は答えを投稿した。 –