我正在开发一个基于测验的应用程序,当用户点击任何选项时,它应该是一个合适的消息,如“您的ans是正确的”,“您的ans是错误的”.What我想要的是
1. how to display that sort of messages ?or is it the only way to display such msgs ?
2. If the user clicks wrong option the it should show the correct answer as well as the msg
here is what i have done so far but its not working giving force close!!!
public void onClick(View v)
{
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.button1:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right"))
{
displayAnswer();
}
else
{
errorAnswer();
}
break;
case R.id.button2:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right"))
{
displayAnswer();
}
else
{
errorAnswer();
}
break;
case R.id.button3:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right"))
{
displayAnswer();
}
else
{
errorAnswer();
}
break;
case R.id.button4:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right"))
{
displayAnswer();
}
else
{
errorAnswer();
}
break;
case R.id.btn_next:
// lyt_ans.setVisibility(View.GONE);
// lyt_quest.setVisibility(View.VISIBLE);
prev = counter;
counter += 1;
if (counter >= SIZE)
{
Collections.shuffle(quizIndexList);
counter = 0;
}
getInfoFromDB(quizIndexList.get(counter));
reLoad();
break;
case R.id.btn_bck:
getInfoFromDB(quizIndexList.get(prev));
reLoad();
// counter --;
}
}
private void errorAnswer()
{
Toast toast = new Toast(getApplicationContext());
toast.setDuration(SIZE);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setText("your answer is wrong");
// TODO Auto-generated method stub
}
private void displayAnswer() {
// TODO Auto-generated method stub
lyt_quest = (LinearLayout) findViewById(R.id.lyt_quest);
lyt_ans = (LinearLayout) findViewById(R.id.lyt_ans);
lyt_quest.setVisibility(View.VISIBLE);
lyt_ans.setVisibility(View.VISIBLE);
// TextView txt1 = null;
Toast toast = new Toast(getApplicationContext());
toast.setDuration(SIZE);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setText("Your answer is correct!!");
}任何帮助都是值得欣赏的。
发布于 2012-04-10 13:01:16
你为什么不用
Toast.makeText(getApplicationContext(), "Your message", Toast.LENGTH_SHORT).show();您在代码中编写的代码将显示一个错误,说明这个toast从未使用Toast.makeText()创建过。所以你最好使用这种方法。
如果你想使用自定义的toast消息,那么有一件事是必须的,那就是你在代码中没有做的事情。在创建toast对象之后,您必须使用setView(您的膨胀布局对象)将视图设置为该toast。最后,您必须调用toast.show()。但请记住,您必须获得放大的布局并将其传递给setView()。
有关自定义吐司的更多信息,请参阅this link
发布于 2012-04-10 12:59:08
v.getTag()我在您的代码中找不到任何setTag(object)。
一旦您对视图执行setTag()操作,则只有您可以对同一视图执行getTag()操作。
Log.d("ERR", v.getTag().toString());if (v.getTag().toString().equalsIgnoreCase("right"))
在您显示Toast之前,这里将出现错误
您也错过了查看Toast toast.show()的方法
https://stackoverflow.com/questions/10083271
复制相似问题