2 ssummeraw ssummeraw 于 2013.05.02 14:27 提问

从随机排列 list的 view 中开启 activity

我主要是想让 list view 的内容可以随意拖拽,所以里面的list是随机排列的。不管list在list view里面如何排列,每个list都必须打开自己特定不变的activity。所以我试着使用(TextView)view.getText()来读取list的信息,但是正如在Toast里面的情况一样,我无法得到每条list的对应信息。

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);
        }
    }
  });
}
}

谁知道如何读取可拖拽对象内容的排列顺序?

2个回答

xiaoyan_12
xiaoyan_12   2013.05.06 11:35
已采纳

做下面的改变:

String text = ((TextView) view).getText();
if (text.equals("Band0") { 
CSDN_Ask
CSDN_Ask   2013.05.06 11:44

在 getView 外设置:

int remember = 0;
int[] rememberArray = new int[arraylist.size()-1]; //存储 indexes 

在 getView 里设置:

Random gen= new Random()
    int randomPosition = gen.nextInt(arraylist.size()-1);
    rememberArray[remember]=randomPosition;
   remember++;
    for(int i =0; i <= rememberArray.length;i++){
    if(!remember==rememberArray[i])
    {
     arraylist.get(randomPosition);

    } else { //再次创建, 或许你可以创建方法,应用递归

    }
    } // 处理 getView()里别的方法
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!