[英]How to compare GridView Item with textview String in Android?
我正在創建游戲應用程序。 當我單擊GridView
項目時,我正在將GridView
與圖像一起GridView
,該項目顯示在另一個活動上。在另一個活動上,我想匹配圖像徽標和textview字符串(徽標名稱)。 我已經做了一些邏輯,但是當我運行應用程序時,它轉到了else語句。
這是我的代碼。
GridView活動代碼:
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);
}
});
}
}
**另一個活動代碼**
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();
}
}
}
});
}
}
這是ImageAdapter類
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;
}
}
使用equals()
或equalsIgnoreCase()
比較Java中的兩個字符串。
取代這個
if (stringVAlue == "13" && stringtext.equals("Catty"))
有了這個
if (stringVAlue.equals("13") && stringtext.equals("Catty"))
嘗試這個:
if ("13".equals(stringVAlue.trim()) && "Catty".equals(stringtext)) {
Toast.makeText(Activity_One.this, "This Logo Name Is Right ", Toast.LENGTH_SHORT).show();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.