我正在开发一个基于测验的应用程序,因为当用户点击任何选项时,它应该是一个合适的消息,例如“你的ans是正确的”,“你的ans是错的”。我想要的是
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!!");
}
任何帮助都很明显。
答案 0 :(得分:5)
为什么不使用
Toast.makeText(getApplicationContext(), "Your message", Toast.LENGTH_SHORT).show();
你在代码中写的内容会给你一个错误,说这个toast从未使用Toast.makeText()创建。所以最好使用这种方法。
如果您想使用自定义Toast消息,那么您必须在代码中执行以下操作。创建 Toast对象后,您必须使用 setView(充气的布局对象)将视图设置为Toast。然后你必须最后调用 toast.show()。但请记住,您必须获得膨胀的布局并将其传递给 setView()。
有关自定义吐司的详情,请参阅this link
答案 1 :(得分:4)
v.getTag()
我在您的代码中找不到任何setTag(object)
。
一旦你将Tag()设置为视图,那么只有你可以获得相同视图的getTag()。
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right"))
在您显示Toast
你也失踪了,要查看Toast toast.show()