将递质下文保存到数组(不同的活动)中



感谢您花时间阅读我的帖子。

我如何能够将电子邮件的价值(elemeDittext)从create.java保存到活动alarmerservice中的此数组?

中。

String[] toArr =

是否有人能够提供解决方案或提出任何建议?我已经尝试了多次没有成功。

任何帮助将不胜感激!:)

AlarmService.java

package com.example.pc.achieve;
import android.app.IntentService;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.PowerManager;
import android.preference.PreferenceManager;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.widget.Toast;
import static android.graphics.Color.GREEN;
public class AlarmService extends IntentService {
SharedPreferences pref;
PowerManager powerManager;
PowerManager.WakeLock wakeLock;
public AlarmService() {
    super("");
}
@Override
protected void onHandleIntent(Intent intent) {
    powerManager = (PowerManager) getSystemService(POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "FCFCFCFC");
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    addNotification();
    sendMAIL();
}
public void addNotification() {
    NotificationCompat.Builder builder =
            new NotificationCompat.Builder(getApplicationContext())
                    .setSmallIcon(R.drawable.icon_transperent)
                    .setLights(GREEN, 700, 700)
                    .setContentTitle("Alert!")
                    .setContentText("This is a reminder");
    Intent notificationIntent = new Intent(getApplicationContext(), MainMenu.class);
    PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0,     notificationIntent,
            PendingIntent.FLAG_UPDATE_CURRENT);
    builder.setContentIntent(contentIntent);
    // Add as notification
    NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    builder.setVibrate(new long[] { 0, 1000, 1000, 1000, 1000 });
    manager.notify(0, builder.build());
}
public void sendMAIL(){
    String getEmail = pref.getString("email", "");
    String[] toArr = {getEmail};
    m.setTo(toArr);
    m.setFrom("notification@gmail.com");
    m.setSubject("Alert!");
    m.setBody("This is a reminder.");
    try {
        if(m.send()) {
        } else {
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
public void onDestroy() {
    super.onDestroy();
}
}

create.java

package com.example.pc.achieve;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.EditText;
public class Create extends Activity {
SharedPreferences pref;
private EditText subjectEditText;
private EditText descEditText;
EditText emailEditText;
private DBManager dbManager;
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_create);
        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
        subjectEditText = (EditText) findViewById(R.id.subject_edittext);
        descEditText = (EditText) findViewById(R.id.description_edittext);
        emailEditText = (EditText) findViewById(R.id.email_edittext);
}
public void btnCreate(View view) {
    String email = emailEditText.getText().toString();
    pref.edit().putString("email", email).apply();
    dbManager = new DBManager(this);
    dbManager.open();
    final String name = subjectEditText.getText().toString();
    final String desc = descEditText.getText().toString();
    dbManager.insert(name, desc);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Your deadline has now been created.")
            .setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    finish();
                }
            });
    AlertDialog alert = builder.create();
    alert.show();
}

public void btnSetAlarm(View view) {
    startActivity(new Intent(Create.this, Alarm.class));
}
}

您可以使用sharedPreference在另一个活动中获取字符串值:在您的EditText活动中:

全球声明:

SharedPreferences pref;

在两种活动的onCreate()中启动:

pref = PreferenceManager.getDefaultSharedPreferences(this); //Here is my change

onCreate()中的editText s初始化:

subjectEditText = (EditText) findViewById(R.id.subject_edittext);
descEditText = (EditText) findViewById(R.id.description_edittext);
emailEditText = (EditText) findViewById(R.id.email_edittext);

btnCreate()方法中:

String email = emailEditText.getText().toString();
pref.edit().putString("email", email).apply();

在您的字符串[]活动中:

String getEmail = pref.getString("email", "");
String[] toArr = {getEmail};

希望这会有所帮助。

将其写入共享的首选项和另一个活动检查之前,如果将电子邮件从共享的偏好出现。http://androidopentorials.com/android-sharedpreferences-tutorial-and-example/这是一个很好,很容易理解共享偏好的例子。如果您在运行时需要它,也可以通过意图传递。研究意图和共享偏好。

如果要在运行时存储那些电子邮件地址的字符串,并且以后不需要它们,则在MainAttivity中定义公共静态字符串[],然后从不同的活动中添加值。内部活动(或第一次活动(我的建议))定义

public static String[] emails;

在另一项活动中称其为元素,但为了避免覆盖做这个

int count = MainActivity.emails.length;
MainActivity.emails = new String[count + 1];
MainActivity.emails[count + 1] = "newemail@mail.com";

但是,如果您想保存它并以后使用它以保存在文件中。希望它有帮助!

类似

的东西
String[] all_emails= new String[10]; // initialise array
String email= edutText.getText().toString(); // Get text from EditText
all_emails[index] = email;  //add to array like... all_emails[0] = email;

最新更新