我试图制作一个非常简单的应用来帮助我的女朋友感觉更安全。 我真的很擅长这一点,一点点的帮助会有很长的路要走。我一直在尝试使用意图,我觉得我现在非常接近手头的解决方案,我只需要一些帮助。
因此,打开页面应该等到您的共享偏好设置中有数据,然后它才会对其进行操作。
第二页应该从EditTexts中获取一些数据并将其存储在您的意图中。但是出于某种原因,我的数据没有被存储,当我从意图中提取某些东西时,它就是""。
CLASS 1:
public void ActivateAlarm(View view){
Bundle myBundle = getIntent().getExtras();
if(myBundle == null){
Log.i("The bundle is empty!", "Smashing success!");
}
else{
SharedPreferences sharedPreferences = this.getSharedPreferences("com.example.jackson.distressalarm", Context.MODE_PRIVATE);
String NumberToCall = sharedPreferences.getString("CallNumber", "");
String TextOne = sharedPreferences.getString("1Text", "");
String TextTwo = sharedPreferences.getString("2Text", "");
String TextThree = sharedPreferences.getString("3Text", "");
Button myButton = (Button) findViewById(R.id.button);
myButton.setText(TextOne);
Log.i("MY NUMBER TO CALL", NumberToCall);
/*Take in the data from the settings. Check it for consistency.
1)Are the numbers empty?
2)Is the number 911 or a 7 digit number?
3)Do they have a passcode?
4)Is the number real? No philisophical BS
*/
}
}
CLASS 2:
public void GoToAlarm(View view){
EditText NumberToCall = (EditText) findViewById(R.id.callNumber);
EditText text1 = (EditText) findViewById(R.id.textNumOne);
EditText text2 = (EditText) findViewById(R.id.textNumTwo);
EditText text3 = (EditText) findViewById(R.id.textNumThree);
Intent intent = new Intent(this, AlarmActive.class);
intent.putExtra("callNumber", NumberToCall.getText().toString());
intent.putExtra("1Text", text1.getText().toString());
intent.putExtra("2Text", text2.getText().toString());
intent.putExtra("3Text", text3.getText().toString());
startActivity(intent);
}
答案 0 :(得分:0)
我认为问题来自于Intent
和SharedPreferences
之间的混淆。
Intent
是一种将数据从一个活动传递到另一个活动的方法。您正在第2类中正确传递数据,但是您没有在第1类中检索它。以下是您可以这样做的方法:
String NumberToCall = intent.getStringExtra("CallNumber");
String TextOne = intent.getStringExtra("1Text");
String TextTwo = intent.getStringExtra("2Text");
String TextThree = intent.getStringExtra("3Text");
SharedPreferences
是一种保存用户数据的方法。如果除了在活动之间传递数据之外还要保存数据,则需要使用以下代码将其添加到SharedPreferences
:
SharedPreferences preferences = this.getSharedPreferences("com.example.jackson.distressalarm", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("callNumber", NumberToCall.getText().toString());
editor.putString("1Text", text1.getText().toString());
editor.putString("2Text", text2.getText().toString());
editor.putString("3Text", text3.getText().toString());
editor.apply();
您可以使用在第1课中使用的代码检索值。