我主要是想让 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);
}
}
});
}
}
谁知道如何读取可拖拽对象内容的排列顺序?
做下面的改变:
String text = ((TextView) view).getText();
if (text.equals("Band0") {
在 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()里别的方法