Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在AlertDialog中更改消息,每次我在andriod中单击不同的图像时?_Android_Android Alertdialog - Fatal编程技术网

Android 如何在AlertDialog中更改消息,每次我在andriod中单击不同的图像时?

Android 如何在AlertDialog中更改消息,每次我在andriod中单击不同的图像时?,android,android-alertdialog,Android,Android Alertdialog,我是android的初学者。我想在用户单击图像时显示图像描述(使用AlertDialog)。但是当我单击其他图像时,AlertDialog(警报)对话框总是显示第一条保存的消息?当我单击其他图像时,它不会重置。谁能帮帮我 MainActivity.java public class MainActivity extends AppCompatActivity implements View.OnClickListener { Spinner spinner; ImageView

我是android的初学者。我想在用户单击图像时显示图像描述(使用AlertDialog)。但是当我单击其他图像时,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();

    }
}
public类MainActivity扩展AppCompatActivity实现View.OnClickListener{
纺纱机;
ImageView ImageView、imgpt1、imgpt2、imgpt3、imgpt4;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
微调器=(微调器)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(这个);
imgpt2.setOnClickListener(这个);
imgpt3.setOnClickListener(这个);
imgpt4.setOnClickListener(此);
列表类别=新建ArrayList();
类别。添加(“前视图”);
类别。添加(“侧视图”);
类别。添加(“后视图”);
类别。添加(“俯视图”);
ArrayAdapter stringArrayAdapter=新的ArrayAdapter(此为R.layout.support\u simple\u spinner\u dropdown\u项,类别);
stringArrayAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinner.setAdapter(stringArrayAdapter);
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
如果(位置==0)
{
设置图像资源(R.drawable.carfrontview);
imgpt1.setImageResource(R.drawable.frontbumpers);
imgpt1.setTag(“前保险杠”);
imgpt2.setImageResource(右前翼子板);
imgpt2.setTag(“前挡泥板”);
imgpt3.setImageResource(R.drawable.frontgrilles);
imgpt2.setTag(“前格栅”);
imgpt4.setImageResource(R.drawable.frontheadlight);
imgpt2.setTag(“前照灯”);
}
否则如果(位置==1)
{
setImageResource(R.drawable.carsideview);
imgpt1.setImageResource(R.drawable.sidebumpers);
imgpt2.setImageResource(R.drawable.sidedoor);
imgpt3.setImageResource(R.drawable.sidefuelcovers);
imgpt4.setImageResource(R.drawable.sidemirror);
}
否则如果(位置==2)
{
setImageResource(R.drawable.carbackview);
imgpt1.setImageResource(R.drawable.后保险杠);
imgpt2.setImageResource(可拉深的后视镜);
imgpt3.setImageResource(R.drawable.Back-RearWindow);
imgpt4.setImageResource(R.drawable.backtaillights);
}
否则如果(位置==3)
{
setImageResource(R.drawable.cartopview);
imgpt1.setImageResource(R.drawable.topbattery);
imgpt2.setImageResource(R.drawable.topfuelinjection);
imgpt3.setImageResource(R.drawable.TopoilStick);
imgpt4.setImageResource(R.drawable.TopRadiance);
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
}
@凌驾
公共void onClick(视图v){
字符串消息=”;
if(imgpt1.getTag()=“前保险杠”)
{
message=“这是保险杠”;
}
else if(imgpt1.getTag()=“前挡泥板”)
{
message=“这是挡泥板”;
}
else if(imgpt1.getTag()=“前照灯”)
{
message=“这是头灯”;
}
else if(imgpt1.getTag()=“frontgrilles”)
{
message=“这是grilles”;
}
AlertDialog.Builder=新建AlertDialog.Builder(MainActivity.this);
制造商名称(“汽车零件”);
builder.setMessage(message);
setNeutralButton(“确定”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.cancel();
}
}).create().show();
}
}
试试这个

如果必须检查字符串,请使用.equals(),如果是int,请使用=

if(imgpt1.getTag().equals("frontbumpers"))
{
     message="This is Bumper";
}
else if(imgpt1.getTag().equals("frontfenders"))
{
     message="This is Fenders";
}
else if(imgpt1.getTag().equals("frontheadlight"))
{
     message="This is headlight";
}
else if(imgpt1.getTag().equals("frontgrilles")
{
     message="This is grilles";
}
试试这个

如果必须检查字符串,请使用.equals(),如果是int,请使用=

if(imgpt1.getTag().equals("frontbumpers"))
{
     message="This is Bumper";
}
else if(imgpt1.getTag().equals("frontfenders"))
{
     message="This is Fenders";
}
else if(imgpt1.getTag().equals("frontheadlight"))
{
     message="This is headlight";
}
else if(imgpt1.getTag().equals("frontgrilles")
{
     message="This is grilles";
}

onClick中
use

imgpt1.getTag().equals(“frontgrilles”)

而不是

imgpt1.getTag()=="frontgrilles"

onClick中
use

imgpt1.getTag().equals(“frontgrilles”)

而不是

imgpt1.getTag()=="frontgrilles"

您应该检查
视图的标记,而不是静态项,因为它们总是正确的!看看你的第一个条件
imgpt1
标记为“
frontbumpers
”,因此该条件始终为真!因此,它每次都显示相同的消息

    @Override
    public void onClick(View v) {
        String message="";

//for your clarification here v is the view which was clicked ex. impt1 or 2 3 4.... or anything which has an onClick listener assigned and was click will call this method. 

        if(v.getTag()=="frontbumpers")
        {
            message="This is Bumper";
        }
        else if(v.getTag()=="frontfenders")
        {
            message="This is Fenders";
        }
        else if(v.getTag()=="frontheadlight")
        {
            message="This is headlight";
        }
        else if(v.getTag()=="frontgrilles")
        {
            message="This is grilles";
        }
}
**建议对
字符串
使用
equals()
而不是
=
。更改为'v.getTag().equals(“someValueYouWantToCheck”)


您应该检查
视图的标记,而不是静态项,因为它们总是正确的!看看你的第一个条件<代码>imgpt1
标签为“
前保险杠v.getTag.equals("xxx")
String string1 = "abc", string2 = "Abc";
TextUtils.isEmpty(string1); // Returns true if the string is empty or null
string1.equals(string2) //Checks with case sensitivity
string1.equalsIgnoreCase(string2) // Checks without case sensitivity. Here this will return true.