我正在尝试将项目从Dialog交换到ListView。比如说我有一个清单。播放器1,播放器2和播放器3.一旦我从列表中选择一个项目,说播放器1.对话框打开播放器2和播放器3.从对话框中选择播放器3。列表应该像玩家3,玩家2,玩家1。
ListView项目的开始顺序:
玩家1 玩家2 球员3
对话订单: 玩家2 球员3
交换后
玩家3 玩家2 球员1
如何做到这一点?任何Algo或示例代码都将得到赞赏。谢谢。
如果我错了,请纠正我。
这就是我想要的。
public void onClick(View v) {
final Dialog dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.custom);
dialog.setTitle(playerData.getDisplayPlayerName());
final ListView wrActivePlayerList = (ListView) dialog.findViewById(R.id.activePlayerListName);
final ArrayAdapter<String> activePlayer = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, qbActivePlayer);
wrActivePlayerList.setAdapter(activePlayer);
wrActivePlayerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
System.out.println("Item Clicked");
TextView playerName = (TextView)playerDataView.findViewById(R.id.playername);
for (int i = 0;i < ((ViewGroup) playerDataView).getChildCount(); i++)
{
// TextView txtView = (TextView)((ViewGroup) playerDataView).getChildAt(i); //(TextView) ((ViewGroup) playerDataView).getChildAt(i);
TextView txtView = (TextView)playerDataView.findViewById(R.id.widget_lineupview_playerdata_playername);
if (txtView != null)
{
if (txtView.getText() == qbActivePlayer[arg2])
{
txtView.setText(playerData.getDisplayPlayerName());
}
}
} playerName.setText(wrActivePlayer[arg2]);
}
});
答案 0 :(得分:0)
我认为您需要更改主列表中元素的位置。当你选择第一个和第二个元素时,在第一个位置需要放第二个元素,第二个元素放在第一个位置。在列表上交换位置后,只需重新创建一个新的列表视图。
示例代码:
MainActivity.java
public class MainActivity extends ListActivity {
ArrayList<String> values = new ArrayList<String>();
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
values.add("Android");
values.add("iPhone");
values.add("WindowsMobile");
}
@Override
protected void onResume() {
super.onResume();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.rowlayout, R.id.label1, values);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
values.remove(position);
//here I put item on 0 position
values.add(0, item);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
onResume();
}
}
rowlayout.xml
android:layout_width =“wrap_content”
android:layout_height =“wrap_content”&gt;
<ImageView
android:id="@+id/icon"
android:layout_width="22px"
android:layout_height="22px"
android:layout_marginLeft="4px"
android:layout_marginRight="10px"
android:layout_marginTop="4px"
android:src="@drawable/ic_launcher" >
</ImageView>
<TextView
android:id="+id/label1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+id/label"
android:textSize="20px" >
</TextView>
</LinearLayout>