2017-10-25 14 views
0

こんにちは私はスピンナーにデータを動的に取得していますが、現在はIDの一部を表示していますが、IDの詳細は別のテーブルに保存されています。 。そして、スピンナーで特定の製品を選択すると、製品の詳細がリストに表示されます。サーバからダイナミックにスピナーの名前を表示する方法

私はあなたのproduct_name = businessgroups.get(0).getProduct();がpruductを取得していると仮定していますサーバー

package cfirst.live.com.activity; 

public class Pos_outlet extends AppCompatActivity implements  RestCallback,View.OnClickListener{ 
Spinner spinner; 

ArrayList<String> products; 

String numberAsString, product_name; 
int i; 
private int cartProductNumber = 0; 
String[] items; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pos_outlet); 
    sharedPreference = new MySharedPreference(Pos_outlet.this); 
    GsonBuilder builder = new GsonBuilder(); 
    gson = builder.create(); 
    initViews(); 

} 

private void initViews() { 

    row1 =(TableRow)findViewById(R.id.row1); 

    spinner=(Spinner)findViewById(R.id.spinner); 

    POSStoreID = (TextView) findViewById(R.id.POSStoreID); 
    POSLocationID = (TextView) findViewById(R.id.POSLocationID); 

    Intent intent = getIntent(); 
    id = intent.getStringExtra("id"); 
    index_id= intent.getStringExtra("index_id"); 
    callStoreDetaislsAPI(); 
    callSmbProductsAPI(); 
    getProductAPI(); 


} 

// **Using this api I'm setting id'd to spinner** 

private void getProductAPI() { 

    HashMap<String, String> map = new HashMap<String, String>(); 
    map.put("store", index_id); 
    Toast.makeText(getApplicationContext(),index_id, Toast.LENGTH_LONG).show(); 

    RestService.getInstance(Pos_outlet.this).getproductlist(map, new MyCallback<List<PosmultistoresModel>>(Pos_outlet.this, 
      Pos_outlet.this, true, "Finding products....", GlobalVariables.SERVICE_MODE.GET_PRODUCTS)); 

} 

// **this API have product Id's Details** 

private void callSmbProductsAPI() { 

    HashMap<String, String> map = new HashMap<String, String>(); 
    map.put("index_id", product); 
    //Toast.makeText(getApplicationContext(),added_by, Toast.LENGTH_LONG).show(); 
    RestService.getInstance(Pos_outlet.this).getSmbProduct(map, new MyCallback<List<PosSmbProductModel>>(Pos_outlet.this, 
      Pos_outlet.this, true, "Fetching details....", GlobalVariables.SERVICE_MODE.SMB_PRODUCT)); 
} 

@Override 
public void onClick(View v) { 
    switch(v.getId()) { 


    case R.id.AddtoBasket: 
     callPosProductsAPI(); 
     callSmbProductsAPI(); 
     break; 
    } 
} 

@Override 
public void onFailure(Call call, Throwable t, GlobalVariables.SERVICE_MODE mode) { 
    //Toast.makeText(getApplication(),"failure",Toast.LENGTH_LONG).show(); 
} 

@Override 
public void onSuccess(Response response, GlobalVariables.SERVICE_MODE mode) { 
    switch (mode) { 

    //** I'm setting data to spinner ** 

     case GET_PRODUCTS: 
      try { 
       List<PosmultistoresModel> businessgroups = (List<PosmultistoresModel>) response.body(); 
       product_name = businessgroups.get(0).getProduct(); 
       List<PosmultistoresModel> list=null; 
       for(i=0;i<businessgroups.size();i++) 
       { 
        list=businessgroups; 
       } 
       items = new String[list.size()]; 
       for(int i=0; i<businessgroups.size(); i++){ 
        //Storing names to string array 
        items[i] = list.get(i).getProduct(); 
       } 
       ArrayAdapter<String> adapter1; 
       adapter1 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, items); 
       //setting adapter to spinner 
       spinner.setAdapter(adapter1); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      break;** 

    // ** Product id details (title, image, etc) Api 

     case SMB_PRODUCT: 
     try { 
      ArrayList<PosSmbProductModel> products = (ArrayList<PosSmbProductModel>) response.body(); 
      //Product_id = products.get(0).getProduct(); 

      // for (int i = 0; i < products(); i++) { 
       Title = products.get(0).getTitle(); 
       productname1.setText(Title); 

       imageid12 = products.get(0).getMain_image(); 
       Picasso.with(this).load("https://www.consumer1st.in/pre_production/uploads/" + imageid12).into(imageid1); 
      } 
     // } 
     catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 

     break; 
     } 
    } 
} 
+0

を試すことができ、問題は何ですか? – Sush

+0

@sush今は製品IDを表示していますが、IDの代わりに名前が必要です。 –

答えて

0

からデータを取得するためのレトロフィット法を使用しています。

すべてのこの部分を削除してください

product_name = businessgroups.get(0).getProduct(); 
      List<PosmultistoresModel> list=null; 
      for(i=0;i<businessgroups.size();i++) 
      { 
       list=businessgroups; 
      } 
      items = new String[list.size()]; 
      for(int i=0; i<businessgroups.size(); i++){ 
       //Storing names to string array 
       items[i] = list.get(i).getProduct(); 
      } 

の最初に、あなたが

ArrayList<String> productList = new ArrayList<>(); 

    for (int i = 0; i < businessgroups.size(); i++) { 
     productList.add(businessgroups.get(i).getProduct()); 
    } 

そして最後に

adapter1 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, productList); 
関連する問題