Android 从无序列表视图打开活动
所以基本上我希望这个列表视图被洗牌,所以它总是随机的。但是每一个都需要打开自己的活动,并且无论它在列表视图中的什么位置都保持不变(所以我很确定我不能使用position)。因此我尝试使用(TextView)视图.getText(),它不像在Toast中那样读取它。有什么想法吗Android 从无序列表视图打开活动,android,Android,所以基本上我希望这个列表视图被洗牌,所以它总是随机的。但是每一个都需要打开自己的活动,并且无论它在列表视图中的什么位置都保持不变(所以我很确定我不能使用position)。因此我尝试使用(TextView)视图.getText(),它不像在Toast中那样读取它。有什么想法吗 public class Bands extends ListActivity{ int numBands; @Override public void onCreate(Bundle savedInstanceStat
public class Bands extends ListActivity{
int numBands;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ArrayList<String> bands = new ArrayList<String>();
bands.add(new String("Band0"));
bands.add(new String("Band1"));
bands.add(new String("Band2"));
Collections.shuffle(bands);
setListAdapter(new ArrayAdapter<String>(this, R.layout.item_list, bands));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
if( ((TextView) view).getText() == "Band0"){
Intent i = new Intent(Bands.this, Audio.class);
i.putExtra("Band", 0);
startActivity(i);
}
}
});
}
公共类扩展ListActivity{
int numBands;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
最终ArrayList标注栏=新ArrayList();
添加(新字符串(“Band0”);
添加(新字符串(“Band1”);
添加(新字符串(“带2”));
收藏。洗牌(乐队);
setListAdapter(新的ArrayAdapter(此,R.layout.item_列表,带);
ListView lv=getListView();
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//单击后,显示带有文本视图文本的祝酒词
Toast.makeText(getApplicationContext(),((TextView)视图).getText(),
吐司。长度(短)。show();
if(((文本视图)视图).getText()==“Band0”){
意图i=新意图(Bands.this、Audio.class);
i、 putExtra(“波段”,0);
星触觉(i);
}
}
});
}
}
有人知道一种读取洗牌产生的数字顺序的方法吗?因为如果有人知道怎么做,那可能是一种方式。谢谢,非常感谢您的帮助。进行此更改如何:
String text = ((TextView) view).getText();
if (text.equals("Band0") {
...
做这个改变怎么样:
String text = ((TextView) view).getText();
if (text.equals("Band0") {
...
如果我答对了你的问题,你每次都需要随机填充listview。在从列表中设置字符串的getView()中,添加以下内容 在getView之外
int remember = 0;
int[] rememberArray = new int[arraylist.size()-1]; //to store indexes that already has been drawn
在getView()中
:
Random gen=new Random()
int randomPosition=gen.nextInt(arraylist.size()-1);
rememberArray[记住]=随机位置;
记住++;
对于(int i=0;i如果我答对了你的问题,你每次都需要随机填充listview
在getView之外
int remember = 0;
int[] rememberArray = new int[arraylist.size()-1]; //to store indexes that already has been drawn
在getView()中
:
Random gen=new Random()
int randomPosition=gen.nextInt(arraylist.size()-1);
rememberArray[记住]=随机位置;
记住++;
对于(int i=0;i