나는 안드로이드에 초보자입니다. 사용자가 이미지를 클릭하면 이미지 설명 (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'에 문제가 있습니다.나는 대답을 게시했다. –