Domanda

I'm creating application for game. I'm using GridView with images when i click on GridView item that item is display on another activity.On the other activity i want to match the image logo and textview String(logo name). I have done some logic but when i run the application it goes to else statement.

Here is my code.

The GridView Activity code:

public class GridView_Activity extends Activity
{ 
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.gridview_layout);

           GridView gridview = (GridView) findViewById(R.id.gridViewImage);
           gridview.setAdapter(new ImageAdapter(this));


        gridview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View v, int position,
                    long id) {
                // TODO Auto-generated method stub

                Toast.makeText(GridView_Activity.this, "" + position, Toast.LENGTH_SHORT).show();

                Intent mInDisplay=new Intent(GridView_Activity.this, Activity_One.class);
                mInDisplay.putExtra("Index", position);
                startActivity(mInDisplay);
            }
        });

    }

}

** The Another Activity code**

public class Activity_One extends Activity {
    Button btnSubmit;
    ImageView imgDisplayImg;
    String stringVAlue;
    EditText edittext;
    int index;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.display_image);

        Bundle bdl = getIntent().getExtras();
        index = bdl.getInt("Index");
        System.out.println("Index Position = " + index);

        ImageView mImage = (ImageView) findViewById(R.id.mImgView1);
        mImage.setImageResource(Constants.mThumbIds[index]);

        stringVAlue = String.valueOf(index);
        System.out.println("stringVAlue  = " + stringVAlue);

        btnSubmit = (Button) findViewById(R.id.buttonAdd);
        btnSubmit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                edittext = (EditText) findViewById(R.id.edittextString_ImageName);
                String stringtext = edittext.getText().toString().trim();
                System.out.println("stringtext  = " + stringtext);
                if (stringVAlue != null) {
                    if (stringVAlue == "13" && stringtext.equals("Catty")) {
                        Toast.makeText(Activity_One.this,
                                "This Logo Name Is Right ", Toast.LENGTH_SHORT)
                                .show();
                    }

                    else {
                        Toast.makeText(Activity_One.this, "Wrong",
                                Toast.LENGTH_SHORT).show();
                    }

                }
            }
        });

    }

}

This is ImageAdapter class

public class ImageAdapter extends BaseAdapter
{
     private Context mContext;

        public ImageAdapter(Context c) {
            mContext = c;
        }

        public int getCount() {
            return Constants.mThumbIds.length;
        }

        public Object getItem(int position) {
            return null;
        }

        public long getItemId(int position) {
            return 0;
        }

        // create a new ImageView for each item referenced by the Adapter
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null) {  // if it's not recycled, initialize some attributes
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(8, 8, 8, 8);
            } else {
                imageView = (ImageView) convertView;
            }

            imageView.setImageResource(Constants.mThumbIds[position]);
            return imageView;
        }
    }
È stato utile?

Soluzione

Use equals() or equalsIgnoreCase() to compare two strings in Java.

Replace this

if (stringVAlue == "13" && stringtext.equals("Catty"))

With this

if (stringVAlue.equals("13") && stringtext.equals("Catty"))

Altri suggerimenti

Try this:

if ("13".equals(stringVAlue.trim()) && "Catty".equals(stringtext)) {
    Toast.makeText(Activity_One.this, "This Logo Name Is Right ", Toast.LENGTH_SHORT).show();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top