将保存的数据加载到另一个活动

时间:2015-10-21 19:15:50

标签: android android-intent android-activity

我在主要活动中保存了一些值,我想在次要活动中加载它,但我不知道该怎么做。值将加载到同一活动中。任何人都可以帮助我。

非常感谢!

主要活动:

public void SaveList(View view) {
    //WriteMethode
    String weight = "Gewicht: " +weightText.getText().toString() + "kg" ;
    String height =   " Körpergröße: "+ heightText.getText().toString() + "cm";

    try {

        FileOutputStream fileOutputStream = openFileOutput("values.txt",MODE_APPEND);
        fileOutputStream.write(weight.getBytes());
        fileOutputStream.write(height.getBytes());
        Toast.makeText(getApplicationContext(),"Gespeichert",Toast.LENGTH_LONG).show();
        fileOutputStream.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}


public void showlist(View view){


    try {
        FileInputStream fileInputStream = openFileInput("values.txt");
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
        BufferedReader  bufferedReader= new BufferedReader(inputStreamReader);
        StringBuffer stringBuffer= new StringBuffer();
        String lines;
        while((lines=bufferedReader.readLine()) !=null){
            stringBuffer.append("\n"+lines +"\n");
        }
        resultText.setText( stringBuffer.toString());
    }catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    Intent intent = new Intent(this, MyList.class);


    startActivity(intent);

}

}

第二项活动:

public class MyList extends AppCompatActivity {
TextView resultLabel;
TextView resultText;
// Button listButton;

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

2 个答案:

答案 0 :(得分:0)

在Android中,最好使用共享首选项来保存这种应用程序数据。

this是一个很好的教程,可以帮助您了解它的工作原理

答案 1 :(得分:0)

使用意图,这是在活动之间发送的消息。在intent中,您可以放置​​所有类型的数据,String,int等。

例如在activity2中,在转到activity1之前,您将以这种方式存储字符串消息:

Intent intent = new Intent(activity2.this, activity1.class);
intent.putExtra("message", message);
startActivity(intent);

activity1中,在onCreate()中,您可以通过检索Bundle(包含调用活动发送的所有消息)来获取String消息,并在其上调用getString():< / p>

Bundle bundle = getIntent().getExtras();
String message = bundle.getString("message");

然后您可以在TextView中设置文本:

TextView txtView = (TextView) findViewById(R.id.your_resource_textview);    
txtView.setText(message);