2012-01-27 12 views
0

複数の選択肢とチェックボックスを持つlistViewが1つあります。 listviewからsqlite3のクエリを実行して値を取得します。 ボタンをクリックすると、選択した項目を別の表に挿入する必要がありますが、どうすればいいのか分かりません。 挿入する前に、1つのコンソールログ(Log.v)が表示されているかどうかを確認しようとしています。このコードにはinsert文はありません。 提案がありますか?事前に感謝し、私の英語については申し訳ありません、リストから選択した値を挿入する複数の選択肢を表示

アレックス。

私は、コードを貼り付けます。

public class productos extends Activity { 
    SQLiteDatabase db; 
Spinner prodSpinner; 
ArrayAdapter<String> prodAdapter; 

Spinner catSpinner; 
ArrayAdapter<String> catAdapter; 
Cursor catCursor; 

Cursor prodCursor; 
String Value2; 
String valor2; 
SparseBooleanArray sp; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.productos); 

    Bundle extras = getIntent().getExtras(); 
    //final String Value = extras.getSerializable("Lista").toString(); 
    //final String Value2 = extras.getSerializable("Super").toString(); 
    Button CatText2 = (Button) findViewById(R.id.textCategoria); 
    CatText2.setOnClickListener(new OnClickListener() { 

    public void onClick(View arg0) { 
     Log.v("valor4:", "AAAAA"); 
     recCatSpinner(); 
     } 
    }); 
    Button btSelecciona = (Button) findViewById(R.id.btSelecciona); 
    btSelecciona.setOnClickListener(new OnClickListener() { 
    public void onClick (View arg0) { 
     Toast.makeText(getBaseContext(),"AAAA",Toast.LENGTH_SHORT).show(); 
    } 
    }); 

    Button btComanda = (Button) findViewById(R.id.btComanda); 
    btComanda.setOnClickListener(new OnClickListener() { 
    public void onClick (View arg0) { 
     EscriuComanda(); 
    } 

    private void EscriuComanda() { 
      final ListView prodSpinner = (ListView) findViewById(R.id.spProductes); 
      int count = 0; 
      // 
      sp = new SparseBooleanArray(); 
      //SparseBooleanArray sp=prodSpinner.getCheckedItemPositions(); 
      sp.clear(); 
      sp = prodSpinner.getCheckedItemPositions(); 
      for(int i = 0; i < sp.size(); i++) 
      { 
         if (sp.valueAt(i)==true) 
         { 
          Log.v("400", "SI: " + valor2); 
         } 
       else 
       { 
        Log.v("500", "No: " + valor2); 
       } 
      } 
     } 
    }); 
//Toast.makeText(getBaseContext(),Value2,Toast.LENGTH_SHORT).show(); 
    recCatSpinner();    
} 
public class UsuariosSQLiteHelper extends SQLiteOpenHelper { 
    public UsuariosSQLiteHelper(Context contexto, String nombre, 
           CursorFactory factory, int version) { 
     super(contexto, nombre, factory, version); 
    } 
    public void onCreate(SQLiteDatabase db) { 
     Log.v("OnClickV", "1"); 
    } 
    public void onUpgrade(SQLiteDatabase db, int versionAnterior, int versionNueva) { 

     Log.v("OnClickV", "1"); 
    } 
    } 
public Cursor recuperaCategoria() 
    { 
final UsuariosSQLiteHelper usdbh =new UsuariosSQLiteHelper(this, "DBLlistaCompra", null, 1); 
final SQLiteDatabase db = usdbh.getWritableDatabase(); 
String tableName = "Categorias"; 
String[] columns = {"_id","Nombre"}; 


return db.query(tableName, columns, null, null, null, null, null); 
    } 

public Cursor recuperaProductos() 
{ 
    final UsuariosSQLiteHelper usdbh =new UsuariosSQLiteHelper(this, "DBLlistaCompra", null, 1); 
    final SQLiteDatabase db = usdbh.getWritableDatabase(); 
    String tableName = "ArtSuperV"; 
    String[] columns = {"_id","NombreA"}; 
    String where = "NombreC='" + valor2 + "'"; 

    return db.query(tableName, columns, where, null, null, null, null); 
} 
public void recCatSpinner() { 
     final ListView prodSpinner = (ListView) findViewById(R.id.spProductes); 

     catCursor = recuperaCategoria(); 
     catCursor.moveToPosition(1); 
     catAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); //.simple_list_item_multiple_choice);// .simple_spinner_item); 
     catAdapter.setDropDownViewResource (android.R.layout.simple_list_item_multiple_choice); //.simple_spinner_dropdown_item); 
     prodSpinner.setAdapter(catAdapter); 
     if (catCursor.moveToFirst()) { 
      do { 
      catAdapter.add(catCursor.getString(1)); 
     } 
      while (catCursor.moveToNext()); 
      if (db != null) { 
      Toast.makeText(getBaseContext(),catCursor.getString(1),Toast.LENGTH_SHORT).show(); 
      db.close(); 
      } 
     } 
     startManagingCursor(catCursor); 
     catCursor.close(); 
     prodSpinner.setOnItemClickListener(
     new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, 
       View view2, int pos, long id) { 
       valor2 = parent.getItemAtPosition(pos).toString(); 
       Toast.makeText(getBaseContext(),valor2,Toast.LENGTH_SHORT).show(); 
       Log.v("valor2:", valor2); 
       recProdSpinner(); 
       } 
     }); 
} 
     public void recProdSpinner() { 
      final ListView prodSpinner = (ListView) findViewById(R.id.spProductes); 

      prodCursor = recuperaProductos(); 
      prodCursor.moveToPosition(1); 
      prodAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice); //.simple_list_item_multiple_choice);// .simple_spinner_item); 
      prodSpinner.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
      prodAdapter.setDropDownViewResource (android.R.layout.simple_list_item_multiple_choice); //.simple_spinner_dropdown_item); 
      prodSpinner.setAdapter(prodAdapter); 
      if (prodCursor.moveToFirst()) { 
       do { 
       prodAdapter.add(prodCursor.getString(1)); 
       } 
       while (prodCursor.moveToNext()); 
       if (db != null) { 
       Toast.makeText(getBaseContext(),prodCursor.getString(1),Toast.LENGTH_SHORT).show(); 
       db.close(); 
       } 
      } 
      startManagingCursor(prodCursor); 
      prodCursor.close(); 
      prodSpinner.setOnItemClickListener(
      new AdapterView.OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, 
        View view2, int pos, long id) { 
        valor2 = parent.getItemAtPosition(pos).toString(); 
        Toast.makeText(getBaseContext(),valor2,Toast.LENGTH_SHORT).show(); 
        Log.v("valor2:", valor2); 

       } 
      }); 

     } 

}

答えて

1

は、言語の問題が原因コードの流れの一部を把握するカント。
スキームは次のようにする必要があります。
1.両方のアダプタのアダプタを設定します(起動時にリストが空の場合でも空の初期化された配列リストを使用してアダプタを設定し、配列リストをクラスのグローバル変数として、アクティビティのどこからでもアクセスできます。)
2. list1からアイテムを選択し、最初のリストからインデックスを取得します。
3.これらの項目を2番目の配列リストに追加します。
4. 2番目のリストビューのアダプタの "notifyDataSetChanged()"を呼び出します。

「notifyDataSetChanged()」の適切な使用方法を知るリンクは
notifyDataSetChanged example

です。
関連する問題