2012-02-16 50 views
1

我需要幫助如何在拖放後保存ListView的順序。我的列表中有項目(谷歌和雅虎),當用戶按他們時,它打開www.google.com或www.yahoo.com。保存TouchListView並在應用打開時下次打開

所以現在每次我重新排序我的listview並關閉應用程序,它就忘記了我之前做的命令並打開了deault命令。

我的代碼:

private static String[] items={ 
     "Google", 
       "Yahoo"}; 

    private static String[] links={ 
     "http://google.com", 
       "http://yahoo.com}; 

    private IconicAdapter adapter=null; 

    private IconicAdapter1 adapter2=null; 

    ArrayList<String> array= new ArrayList<String>(Arrays.asList(items)); 

    private ArrayList<String> array2=new ArrayList<String>(Arrays.asList(links)); 


    /** Called when the activity is first created. **/ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 



     TouchListView tlv=(TouchListView)getListView(); 
     adapter=new IconicAdapter(); 
     adapter2=new IconicAdapter1(); 
     setListAdapter(adapter); 
     setListAdapter(adapter2); 

     tlv.setOnItemClickListener(itemclick); 
     tlv.setDropListener(onDrop); 

    } 



     private TouchListView.DropListener onDrop=new TouchListView.DropListener() { 
      @Override 
      public void drop(int from, int to) { 
        String item=(String) adapter.getItem(from); 

        adapter.remove(item); 
        adapter.insert(item, to); 

        String link=(String) adapter2.getItem(from); 
        adapter2.remove(link); 
        adapter2.insert(link, to); 


      } 
     }; 

     private TouchListView.OnItemClickListener itemclick= new TouchListView.OnItemClickListener(){ 
      public void onItemClick(AdapterView<?> parent, View view, 
       int from, long id) { 

       String item = adapter.getItem(from); 

      Toast.makeText(getBaseContext(), "you pick: "+item, Toast.LENGTH_SHORT).show(); 

       String link = adapter2.getItem(from); 
       Intent showContent = new Intent(getApplicationContext(), 
         Web.class); 
       showContent.setData(Uri.parse(link)); 
       startActivity(showContent); 
      } 
     }; 

     class IconicAdapter extends ArrayAdapter<String> { 
      IconicAdapter() { 
       super(MainScreen.this, R.layout.row, array); 
      } 

      public View getView(int position, View convertView, 
                ViewGroup parent) { 
       View row=convertView; 

        if (row==null) {              
        LayoutInflater inflater=getLayoutInflater(); 

        row=inflater.inflate(R.layout.row, parent, false); 
       } 

       TextView label=(TextView)row.findViewById(R.id.label); 

       label.setText(array.get(position)); 

       return(row); 

      } 
     }; 

      class IconicAdapter1 extends ArrayAdapter<String> { 
       IconicAdapter1() { 
        super(MainScreen.this, R.layout.row, array2); 
       } 

       public View getView(int position, View convertView, 
                 ViewGroup parent) { 
        View row=convertView; 

        if (row==null) {              
         LayoutInflater inflater=getLayoutInflater(); 

         row=inflater.inflate(R.layout.row, parent, false); 
        } 

        TextView label=(TextView)row.findViewById(R.id.label); 

        label.setText(array.get(position)); 

        return(row); 

       } 
      } 

回答

1

既然你關心的存放物品的狀態列表中,如何存儲在SQLite database您的數據和使用CursorAdapter?您可以將您的訂單作爲一個列存儲在數據庫中。

一般來說,你需要照顧保存你的應用程序狀態顯式。在這裏看看更多的細節:http://developer.android.com/guide/topics/data/data-storage.html

+0

我不知道如何使用CursorAdapter拖放ListView:/ – Eljas 2012-02-16 19:11:10

+0

我不明白CursorAdapter的作品。那麼你有任何想法或任何教程,我該如何保存我的數據列表,然後讓他們回來? :) – Eljas 2012-02-21 07:02:50