2012-02-16 18 views
1

ヘルプが必要ですドラッグアンドドロップ後にListViewの順序を保存するにはどうすればよいですか?私のリストにはアイテム(googleとyahoo)があり、ユーザーがそれらを押すとwww.google.comまたはwww.yahoo.comが開きます。TouchListViewを保存し、次回アプリケーションを開くときに開きます

だから、今私はリストビューを並べ替え、アプリケーションを終了するたびに、私が以前に作った順序を忘れて、デオルト命令を開きます。

マイコード:

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の使用方法については、リスト内の項目の状態を保存するに関係しているので?あなたはdbの列として注文を保存することができます。

一般的に、アプリケーション状態を明示的に保存する必要があります。 http://developer.android.com/guide/topics/data/data-storage.html

+0

ドラッグアンドドロップでCursorAdapterを使用する方法がわかりません。ListView:/ – Eljas

+0

CursorAdapterが機能しなくなりました。どのようにアイデアやチュートリアルを持っていますか?どのように私のarraylistsを保存して戻すことができますか? :) – Eljas

関連する問題