2015-12-12 167 views
1

我想計算sharedPreference中的變量。一些計算可能包括乘法和「if else」。例如,如果變量大於4,則乘以10,如果超過7乘以11.乘法共享首選項

任何人都可以顯示如何執行此操作的示例?

錢是涉及乘法的貨幣。錯誤表示運算符「*」不能應用於android.widget.EditText。如何解決這個問題?

package com.example.shyan.prototype; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 


public class user_input2 extends Activity { 

public static final String PREFS_NAME = "MyPreferenceFile"; 

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

    final EditText item = (EditText) findViewById(R.id.editTextpower); 
    final EditText price = (EditText) findViewById(R.id.editTextusage); 
    Button btn = (Button) findViewById(R.id.buttonsave); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
      SharedPreferences.Editor editor = settings.edit(); 
      editor.putString("item", item.getText().toString()); 
      editor.putString("price", price.getText().toString()); 
      editor.putString("money", item*price); 
      editor.commit(); 


      Intent intent = new Intent(getApplicationContext(), Report.class); 
      startActivity(intent); 

     } 
    }); 
} 
}  

回答

0

您的問題是你不能多editTexts這樣的,如果你想有數值,那麼這樣做:

final EditText item_et = (EditText) findViewById(R.id.editTextpower); 
    final EditText price_et = (EditText) findViewById(R.id.editTextusage); 

    int item=Integer.parseInt(item.getText().toString()); 
    int price = Integer.parseInt(price.getText().toString()); 

現在你可以做的項目*價格,並保存爲這樣的INT:

+0

但現在它說變量「價格」可能沒有初始化 – user3411128

+0

我改變它price_et n錯誤消失了。謝謝。 如果我有很多按鈕,那麼我應該添加的東西屬性n整個編碼到每一個? – user3411128

+0

我不明白你的要求。它不清楚你想要做什麼?修復你的錯別字 – j2emanue