如何存储数据文本查看数据?

时间:2015-05-07 10:06:36

标签: android

在这个文件中我有两个编辑文本和一个textview。我想要两个数字相加。然后在文本视图中显示结果。然后我想存储Textview数据。请帮忙。我正在尝试,但我失败了。  activity_main.xml中//

        

        />

<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/Edit"
        />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/Edit1"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="center">


        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Add"
            android:id="@+id/add"
            android:onClick="add"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/sub"
            android:id="@+id/sub"
            android:onClick="sub"/>
        </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center"
        android:paddingBottom="30dp">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/pr"
            android:text="Previoues Data"
           />
        </LinearLayout>


</LinearLayout>

java文件是 MainActivity.java

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {


    EditText Edit,Edit1;

    Button add, sub, pr;
    TextView view;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       Edit = (EditText) findViewById(R.id.Edit);
        Edit1 = (EditText) findViewById(R.id.Edit1);
        add = (Button) findViewById(R.id.add);
       sub = (Button) findViewById(R.id.sub);
       pr = (Button) findViewById(R.id.pr);
       view = (TextView) findViewById(R.id.view);
       Edit.setText("0");


        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               int value1 = Integer.parseInt(Edit.getText().toString());
                int value2 = Integer.parseInt(Edit1.getText().toString());
              int result = value1 + value2;
            view.setText(Integer.toString(result));
//          Edit.setText(Integer.toString(result));
                SharedPreferences sharedPreferences=getSharedPreferences("Mydata",Context.MODE_PRIVATE);
                SharedPreferences.Editor editor=sharedPreferences.edit();
                editor.putInt("value",result);
                editor.commit();
            }
        });
        sub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int value1 = Integer.parseInt(Edit.getText().toString());
                int value2 = Integer.parseInt(Edit1.getText().toString());
               int result = value1 - value2;
                view.setText(Integer.toString(result));
               Edit.setText(Integer.toString(result));

            }
        });
        pr.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferences sharedPreferences=getSharedPreferences("Mydata",Context.MODE_PRIVATE);
//                int defaultValue = getResources().getInteger(R.string.saved_high_score_default);

                String v=sharedPreferences.getInt("value","");
                view.setText(v);
            }
        });


    }

}

2 个答案:

答案 0 :(得分:0)

更新您的xml文件,从按钮

中删除 onClick
 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Add"
        android:id="@+id/add"
      />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/sub"
        android:id="@+id/sub"
       />

问题在于您从sharedPreference获取价值

  String v=sharedPreferences.getInt("value","");

为什么要将字符串作为默认值传递给你 试试这个字符串

v = Integer.toString(sharedPreferences.getInt("value",0));

答案 1 :(得分:0)

在您已获得android:onClick="add"的布局中,应该有一个public void add(View v)来处理该事件。在该处理程序中做总和。

请按照文档说明 http://developer.android.com/reference/android/widget/Button.html并查看:onCLick处理。