2016-07-04 5 views
0

IDのリストを含むスピナー(動的)があり、各IDにはプロダクト値があります。特定のIDをクリックすると、そのIDに関連付けられた値を変更する必要があります。アンドロイドスピナーを使用したテキストビューの値の変更

私はテーブルを含むlistViewを持っています。この表には、製品名、製品価格および製品情報が含まれています。 IDを変更すると、テーブル情報(リストビュー)は変更されますが、製品の値は変更されません(これはテキストビューであり、リストビューの一部ではありません)。

別のクラスのインテントを使用して商品価値を渡しています。スピナーのアイテムを変更すると、商品の価値が変更されるようにするにはどうすればよいですか?

/** 
    * Listener for flight leg selection of spinner 
    */ 
    private OnItemSelectedListener onFlightLegSelectedListener = new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      new ShowSalesReportAsyncTask(flightLegMap.get(flightLegs.get(position)), position).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // Do nothing 
     } 
    }; 

これは私が製品価値を得ているonCreateです。

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_sales_report); 
     salesReportListView = (ListView) findViewById(R.id.sales_report_listview); 
     spinnerFlightLegs = (Spinner) findViewById(R.id.flight_legs); 
     noTransactionsWarning = (TextView) findViewById(R.id.no_transactions_warning); 
     totalValueNetAmount = (TextView) findViewById(R.id.total_currency_net_value); 
     String salesRevenue = TOTAL_VALUE; 
     Bundle extras = getIntent().getExtras(); 
     if (extras != null) { 
      salesRevenue = extras.getString(TOTAL_VALUE); 
     } 
     totalValueNetAmount.setText(salesRevenue); 



     flightLegMap = getAllFlightLegs(); 
     if (!flightLegMap.isEmpty()) { 
      setFlightLegSpinner(); 
      btnShare.setEnabled(true); 
     } else { 
      btnShare.setEnabled(false); 
     } 

     spinnerFlightLegs.setOnItemSelectedListener(onFlightLegSelectedListener); 
     salesReportListAdapter = new SalesReportListAdapter(this); 
     salesReportListView.setAdapter(salesReportListAdapter); 

これは、データをビューに移入するために使用する非同期タスクです。

プライベートクラスShowSalesReportAsyncTaskはAsyncTaskを拡張> {

private String flightLeg; 
private int position; 

public ShowSalesReportAsyncTask(String flightLeg, int position) { 
    this.flightLeg = flightLeg; 
    this.position = position; 
} 

@Override 
protected List<Purchase> doInBackground(Void... params) { 
    List<Purchase> rows = new ArrayList<Purchase>(); 
    PurchaseDao purchaseDao = new PurchaseDao(flightLeg, MIUtils.getShardDatabaseIndexMap()); 
    LOG.debug(TAG + "Getting report for : {}", flightLeg); 
    // double netTotal = SalesUtil.calculateFlightTransactionTotal(purchaseDao, refundDao,()); 
    return purchaseDao.getSuccessfulTransactions(); 
} 

@Override 
protected void onPostExecute(List<Purchase> result) { 
    super.onPostExecute(result); 
    if (!result.isEmpty()) { 
     noTransactionsWarning.setVisibility(View.GONE); 
    } else { 
     noTransactionsWarning.setVisibility(View.VISIBLE); 
    } 
    salesReportListAdapter.setRowsAndFlightDetails(result, flightLegMap.get(flightLegs.get(position)), 
      spinnerFlightLegs.getSelectedItem().toString()); 

    totalValueNetAmount.setText((int) netTotal); 

} 

}

変更する必要がある項目が "EUR" です。 SPINNER TABLE IMAGE

+0

製品価値とは何ですか? EUR 98.00? –

+0

値を印刷/ログ記録しましたか?何が印刷されますか?ヌルかブランク? –

+0

製品の価値は98.00ユーロです。スピナーを変更すると、新しい商品価値が表示されるはずですが、代わりに98.00 – punit1337

答えて

関連する問題