一个android小程序。。哪里出了问题

何-小鱼 2017-05-26 07:49:37
想实现的功能是:在输入框中输入书名(图书1、图书2、图书3),下面ImageView中显示出对应的图片。图片是放在drawable中的。帮我看看是哪里出了问题。谢谢

public class MainActivity extends Activity {
private EditText editText;
private Map mmap = new HashMap();
private Button button;
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.edit);
button = (Button) findViewById(R.id.button);
img = (ImageView) findViewById(R.id.imageView);

mmap.put("图书1",R.drawable.pic1);
mmap.put("图书2",R.drawable.pic2);
mmap.put("图书3",R.drawable.pic3);

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = editText.getText().toString();
Set keySet= mmap.keySet();
Iterator iterator = keySet.iterator();
while(iterator.hasNext()) {
String key = (String) iterator.next();
int value = (int) mmap.get(key);
if (key == text){
img.setImageResource(value);
}
}
}
});
}
}
...全文
323 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
YXTS122 2019-01-31
  • 打赏
  • 举报
回复
public class MainActivity extends Activity {
private EditText editText;
private Map<String,Object> mmap = new HashMap<String,Object>();
private Button button;
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.edit);
button = (Button) findViewById(R.id.button);
img = (ImageView) findViewById(R.id.imageView);

mmap.put("图书1",R.drawable.abc_ic_clear_search_api_disabled_holo_light);
mmap.put("图书2",R.drawable.abc_ab_share_pack_holo_dark);
mmap.put("图书3",R.drawable.ic_launcher);

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = editText.getText().toString();
Set keySet= mmap.keySet();
Iterator iterator = keySet.iterator();
while(iterator.hasNext()) {
String key = (String) iterator.next();
if (key.equals(text)){
Toast.makeText(getApplication(),key,Toast.LENGTH_LONG).show();
img.setImageResource((Integer)mmap.get(key));
break;
}
}
}
});
}
}
何-小鱼 2017-06-08
  • 打赏
  • 举报
回复
嗯,搞懂了。。这个程序是我拼凑的,没学过java ,不能直接用等号。。谢谢大家
不再流浪 2017-06-05
  • 打赏
  • 举报
回复
if (key == text){ String类型不能直接这么比较,需要使用key.equalsIgnoreCase(text)来比较。
chickenmay 2017-06-05
  • 打赏
  • 举报
回复
为什么要写的这么复杂呢。。我晕死了 还有循环的== 能用equeal来比较吗?
ecstatic 2017-05-27
  • 打赏
  • 举报
回复
if (key == text){ img.setImageResource(value); } 字符串判断用 equals ==是判断2个对象引用地址是否相同的
ganshenml 2017-05-27
  • 打赏
  • 举报
回复
判断语句:     if (key == text){} String 类型你用==来比较么?——>搞懂equals与==比较的区别吧
RaleighLuo 2017-05-27
  • 打赏
  • 举报
回复
没有跳出循环,找到了就break if (key == text){ img.setImageResource(value); break; }
茄子凉心 2017-05-27
  • 打赏
  • 举报
回复
value key这个在Android中不是那么好用的, 你不如直接set 设置drawable中的图片
YXTS122 2017-05-27
  • 打赏
  • 举报
回复
具体是出了什么问题,楼主得说清楚啊!

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧