在android中单击列表视图中的不同项目时,如何制作不同的吐司?
大家好,当我试图在我的listview中搜索一个项目时,我在保持我的位置项目固定方面遇到了问题。例如:当我在我的listview中单击一个项目时,我得到了一片字符串,这真的很好;位置3,无搜索界面;这很好。但是,当我对同一个项目使用搜索界面时,我在另一个位置0处得到了不同的字符串吐司。我如何才能使位置与字符串吐司保持一致,而每个位置都是固定的 简而言之,我的目标是当我在没有和有搜索界面的情况下点击Kim性能时,它应该都给我烤面包这真的很好!谢谢,帮帮我在android中单击列表视图中的不同项目时,如何制作不同的吐司?,android,listview,Android,Listview,大家好,当我试图在我的listview中搜索一个项目时,我在保持我的位置项目固定方面遇到了问题。例如:当我在我的listview中单击一个项目时,我得到了一片字符串,这真的很好;位置3,无搜索界面;这很好。但是,当我对同一个项目使用搜索界面时,我在另一个位置0处得到了不同的字符串吐司。我如何才能使位置与字符串吐司保持一致,而每个位置都是固定的 简而言之,我的目标是当我在没有和有搜索界面的情况下点击Kim性能时,它应该都给我烤面包这真的很好!谢谢,帮帮我 public class MainActi
public class MainActivity extends AppCompatActivity{
private EditText editText;
private ArrayAdapter<String> listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.event6icon);
editText = (EditText)findViewById(R.id.editCourseText);
ListView itemList = (ListView)findViewById(R.id.CoursesListView);
String [] listViewAdapterContent = {
"rita performance",
"ashely performance",
"jenifer performance",
"akim performance",
"john performance",
};
listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, android.R.id.text1, listViewAdapterContent);
itemList.setAdapter(listAdapter);
itemList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String sMessage = "";
switch(position) {
case 0: sMessage = "This is exactly what should be done "; break;
case 1: sMessage = "You are completely wrong! "; break;
case 2: sMessage = "This is good "; break;
case 3: sMessage = "This is really good "; break;
case 4: sMessage = "This is perfect "; break;
}
Toast.makeText(getApplicationContext(), sMessage+position, Toast.LENGTH_LONG).show();
}
});
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence c, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence c, int start, int before, int count) {
MainActivity.this.listAdapter.getFilter().filter(c);
}
@Override
public void afterTextChanged(Editable c) {
}
});
}
}
您可以在代码中使用简单的随机选择器逻辑,如下所示
正如GökcanD所提到的,您可以使用一个简单的随机数生成器,但如果您有很多可能性,请使用一个语句:
itemList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (Random.nextInt(5) + 1) {
case 1: Toast.makeText(getApplicationContext(), "This is exactly what should be done "+position, Toast.LENGTH_LONG).show(); break;
case 2: Toast.makeText(getApplicationContext(), "You are completely wrong! "+position, Toast.LENGTH_LONG).show(); break;
case 3: Toast.makeText(getApplicationContext(), "This is good "+position, Toast.LENGTH_LONG).show(); break;
case 4: Toast.makeText(getApplicationContext(), "This is really good "+position, Toast.LENGTH_LONG).show(); break;
case 5: Toast.makeText(getApplicationContext(), "This is perfect"+position, Toast.LENGTH_LONG).show(); break;
default: break;
}
}
});
假设listview中有5个项目,并单击每个项目,则希望显示不同的toast消息。试试这个:
itemList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String sMessage = "";
switch(position) {
case 0: sMessage = "This is exactly what should be done "; break;
case 1: sMessage = "You are completely wrong! "; break;
case 2: sMessage = "This is good "; break;
case 3: sMessage = "This is really good "; break;
case 4: sMessage = "This is perfect "; break;
}
Toast.makeText(getApplicationContext(), sMessage+position, Toast.LENGTH_LONG).show();
}
});
快乐编码 如果我有两个以上的项目,比如说100??我更新了上面的代码。我们是否应该使用else if then?如果是,如何?嗨,它工作得很好,但是请检查我编辑了我的问题,你能指导我吗?嗨,它工作得很好,但是请检查我编辑了我的问题,你能指导我吗?你应该尽量不要发布移动目标的问题。答案现在不再与新编辑的问题对应。相反,你应该接受一个答案,就像你已经接受的那样,然后发布一个新的问题。对不起,先生,我已经在这里发布了这个问题,但是我没有得到任何回应。请帮助我:
itemList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String sMessage = "";
switch(position) {
case 0: sMessage = "This is exactly what should be done "; break;
case 1: sMessage = "You are completely wrong! "; break;
case 2: sMessage = "This is good "; break;
case 3: sMessage = "This is really good "; break;
case 4: sMessage = "This is perfect "; break;
}
Toast.makeText(getApplicationContext(), sMessage+position, Toast.LENGTH_LONG).show();
}
});