0

2つのアクティビティAとBを作成します。アクティビティ「A」のSQLiteデータベースとアクティビティ「B」のスピナーからリストビューにデータを入力するリストビューがあります。リストビューからアクティビティ 'B' のスピナーにデータを追加したいのですが、これを行うにはどうすればよいですか。

    public class DefineProducts_Activity6 extends Activity {

    private com.db_mgmt.DbHelper mHelper;
    private SQLiteDatabase dataBase;

    private ArrayList<String> products_Id_ArrayList = new ArrayList<String>();
    private ArrayList<String> products_Name_ArrayList = new ArrayList<String>();
    private ArrayList<String> products_Details_ArrayList = new ArrayList<String>();

    private ListView products_List;
    private AlertDialog.Builder build;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.define_products_listview);

        products_List = (ListView) findViewById(R.id.products_List);
        mHelper = new DbHelper(this);


        //add new record
        findViewById(R.id.btnAdd_DefineProduct).setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                Intent i = new Intent(getApplicationContext(),
                        Add_Define_Product.class);

                i.putExtra("update", false);
                startActivity(i);

            }
        });


    @Override
    protected void onResume() {
        displayData();
        super.onResume();
    }



    /**
     * displays data from SQLite
     */
    private void displayData() {
        dataBase = mHelper.getWritableDatabase();
        Cursor mCursor = dataBase.rawQuery("SELECT * FROM "
                + DbHelper.TABLE_DEFINE_PRODUCT_NAME, null);

        products_Id_ArrayList.clear();
        products_Name_ArrayList.clear();
        products_Details_ArrayList.clear();

        if (mCursor.moveToFirst()) 
        {
            do 
            {
                products_Id_ArrayList.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_ID)));
                products_Name_ArrayList.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_PRODUCTS_NAME)));
                products_Details_ArrayList.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_PRODUCTS_DETAILS)));

            } while (mCursor.moveToNext());
        }
        Product_List_Adapter disadpt = new Product_List_Adapter(DefineProducts_Activity6.this,products_Id_ArrayList, products_Name_ArrayList, products_Details_ArrayList);
        products_List.setAdapter(disadpt);
        mCursor.close();
    }



}
4

2 に答える 2

0

このコードは、スピナーのデータを設定する方法のサンプルです....リストをアダプターに渡してスピナーのデータを設定します。

次に、要件に応じて操作を行う必要があります。私が理解しているように、他のアクティビティ「B」でスピナーを設定する必要があるため、リストをアクティビティ「A」からアクティビティ「B」に渡し(インテントを介して、リストを統計として作成するか、その他の方法で)、アダプターに渡す必要がありますスピナーのデータを設定します。あなたが下の行で行ったように....

Product_List_Adapter disadpt = new
Product_List_Adapter(DefineProducts_Activity6.this,products_Id_ArrayList,    products_Name_ArrayList, products_Details_ArrayList);

私が言おうとしていることを理解していただければ幸いです......何か問題が発生した場合は..元に戻してください....

import java.util.ArrayList;
import com.example.dip.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class MyAdapter extends ArrayAdapter<String> {

ArrayList list, list1;

// Constructor for getting details from calling method/class
public MyAdapter(Context context, int textViewResourceId, ArrayList list3, ArrayList list4) {

    super(context, textViewResourceId, list3);
    list = list3;
    list1 = list4;
}

public View getDropDownView(int position, View convertView,ViewGroup parent) {
    return getCustomView(position, convertView, parent);
}

public View getView(int position, View convertView, ViewGroup parent) {
    return getCustomView(position, convertView, parent);
}

public View getCustomView(int position, View convertView, ViewGroup parent) { 

    // Setting the layout
    LayoutInflater inflater=(LayoutInflater)   getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View row=inflater.inflate(R.layout.networkrow, parent, false);

    TextView network=(TextView)row.findViewById(R.id.net); 
    TextView id=(TextView)row.findViewById(R.id.pid);  // Setting id of network

    network.setText((CharSequence) list1.get(position));
    id.setText((CharSequence) list.get(position));  // Setting name of network

    return row;
}

}
于 2013-11-06T11:39:26.030 に答える
0

putextra によって 2 番目のアクティビティに arraylists を送信し、2 番目のアクティビティで別の arrayadapter を作成して spinner.setApdater(yourAdapter) を設定します。

于 2013-11-06T11:18:30.567 に答える