Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从无序列表视图打开活动_Android - Fatal编程技术网

Android 从无序列表视图打开活动

Android 从无序列表视图打开活动,android,Android,所以基本上我希望这个列表视图被洗牌,所以它总是随机的。但是每一个都需要打开自己的活动,并且无论它在列表视图中的什么位置都保持不变(所以我很确定我不能使用position)。因此我尝试使用(TextView)视图.getText(),它不像在Toast中那样读取它。有什么想法吗 public class Bands extends ListActivity{ int numBands; @Override public void onCreate(Bundle savedInstanceStat

所以基本上我希望这个列表视图被洗牌,所以它总是随机的。但是每一个都需要打开自己的活动,并且无论它在列表视图中的什么位置都保持不变(所以我很确定我不能使用position)。因此我尝试使用(TextView)视图.getText(),它不像在Toast中那样读取它。有什么想法吗

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