2015-12-12 170 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