所以我使用starActivityForResult()和SetResult返回数据,但当使用set结果()和完成()时,活动就死了,不会回到第一个...
startActivityForResult所在的MainActivity类中..这是一个警报活动,因为我的应用程序是一个警报/提醒,在我的类中,我有另一个类,它是一个适配器
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(MainActivity.this, AlarmChooser.class));
}
public class AlarmAdapter extends ArrayAdapter<MyAlarm> {
Activity activity;
int layoutResource;
MyAlarm alarm;
ArrayList<MyAlarm> mData = new ArrayList<>();
public AlarmAdapter(Activity act, int resource, ArrayList<MyAlarm> data) {
super(act, resource, data);
activity = act;
layoutResource = resource;
mData = data;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row==null || row.getTag()==null){
LayoutInflater inflater = LayoutInflater.from(activity);
row = inflater.inflate(layoutResource,null);
holder=new ViewHolder();
holder.mTitle=(TextView)row.findViewById(R.id.name);
holder.mDate=(TextView)row.findViewById(R.id.dateText);
holder.mTime=(TextView)row.findViewById(R.id.timeText);
row.setTag(holder);
}else{
holder = (ViewHolder)row.getTag();
}
holder.myAlarm = getItem(position);
holder.mTitle.setText(holder.myAlarm.getTitle());
holder.mDate.setText(holder.myAlarm.getMonth()+" "+holder.myAlarm.getDay()+", "+holder.myAlarm.getYear());
final ViewHolder finalHolder = holder;
holder.mTitle.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Cursor cursor = dba.getnameofAlarm(title);
if (cursor.moveToFirst()) {
do {
String yearData = (cursor.getString(cursor.getColumnIndex(Constants.COLUMN_YEAR)));
String monthData=(cursor.getString(cursor.getColumnIndex(Constants.COLUMN_MONTH)));
String dayData=(cursor.getString(cursor.getColumnIndex(Constants.COLUMN_DAY)));
String hourData=(cursor.getString(cursor.getColumnIndex(Constants.COLUMN_HOUR)));
String minuteData=(cursor.getString(cursor.getColumnIndex(Constants.COLUMN_MINUTE)));
String titleData=(cursor.getString(cursor.getColumnIndex(Constants.COLUMN_NAME)));
String typeData = cursor.getString(cursor.getColumnIndex(Constants.COLUMN_TYPE));
Log.e("YEAR", yearData);
Log.e("MONTH",monthData);
Log.e("DAY",dayData);
Log.e("HOUR",hourData);
Log.e("MINUTE",minuteData);
Log.e("TITLE",titleData);
Log.e("TYPE",typeData);
Class next = null;
switch (typeData) {
case "TimeDateRem":
next = TimeDateRem.class;
break;
case "BirthdayRem":
next = BirthdayRem.class;
break;
case "HolidayReminderKuwait":
next = HolidayReminderKuwait.class;
break;
case "HolidayReminderLebanon":
next = HolidayReminderLebanon.class;
break;
case "HolidayReminderSaudiArabia":
next = HolidayReminderSaudiArabia.class;
break;
case "HolidayReminderUAE":
next = HolidayReminderUAE.class;
break;
}
if (next != null) {
Intent return_intent = new Intent(MainActivity.this, next);
return_intent.putExtra("alarm_title", titleData);
return_intent.putExtra("alarm_month", monthData);
return_intent.putExtra("alarm_year", yearData);
return_intent.putExtra("alarm_day", dayData);
return_intent.putExtra("alarm_hour", hourData);
return_intent.putExtra("alarm_minute", minuteData);
next_intent.putExtra("alarm_content", contenttt);
return_intent.putExtra("FROM_ACTIVITY", "MainActivity");
setResult(RESULT_OK, return_intent);
finish();
}
} while (cursor.moveToNext());
cursor.close();
}
}
});
return row;
}
}
class ViewHolder{
MyAlarm myAlarm;
TextView mTitle;
TextView mDate;
TextView mTime;
TextView mContent;
TextView mID;
}
}
这是我的TimeDateRem,这里有一个ActivityResult
private void setAlarm(Calendar targetCal) {
info.setText("\n\n***\n"
+ "Alarm is set @ " + targetCal.getTime() + "\n"
+ "***\n");
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);
//notification
Intent alarmIIntent = new Intent(this, AlarmReceiver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, alarmIIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pIntent);
Intent intent_ForResult = new Intent(TimeDateRem.this, MainActivity.class);
intent_ForResult.putExtra("title", title.getText().toString().trim());
intent_ForResult.putExtra("day", pickerDate.getDayOfMonth());
intent_ForResult.putExtra("month", pickerDate.getMonth());
intent_ForResult.putExtra("year", pickerDate.getYear());
intent_ForResult.putExtra("hour", pickerTime.getCurrentHour());
intent_ForResult.putExtra("minute", pickerTime.getCurrentMinute());
intent_ForResult.putExtra("type", "TimeDateRem");
startActivityForResult(intent_ForResult, REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST) {
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
String previousActivity = extras.getString("FROM_ACTIVITY");
if (previousActivity.equals("MainActivity")) {
String titles = extras.getString("alarm_title");
int year_intent = extras.getInt("alarm_year");
int month_intent = extras.getInt("alarm_month");
int day_intent = extras.getInt("alarm_day");
int minute_intent = extras.getInt("alarm_minute");
int hour_intent = extras.getInt("alarm_hour");
String year = String.valueOf(year_intent);
String month = String.valueOf(month_intent);
String day = String.valueOf(day_intent);
String minute = String.valueOf(minute_intent);
String hour = String.valueOf(hour_intent);
title.setText(titles);
pickerTime.setCurrentHour(Integer.parseInt(hour));
pickerTime.setCurrentMinute(Integer.parseInt(minute));
pickerDate.init(
Integer.parseInt(year),
Integer.parseInt(month),
Integer.parseInt(day),
null
);
}
}
}
}
有人能告诉我为什么setResult不把我送回我的主活动吗?
尝试使用如下所示:
activity.setResult(RESULT_OK, return_intent);
activity.finish();
我有第一活动,它通过意图调用第二活动 在SecondActivity完成后,我希望SecondActivity向FirstActivity发送一些变量。然后调用finsih(),它将返回到第一个活动。如何使SecondActivity发送变量并在FirstActivity中获得结果?
我在一个活动中有一个列表视图,在自定义适配器中有一个信息图标。当用户点击该信息按钮时,下一个活动将打开,当用户点击更新按钮时,在下一个活动中标记出勤率后,第二个活动应该完成,第一个活动列表视图应该更新。 我成功地做了什么:我已经成功地标记了出席情况并更改了listview的颜色,但我在关闭第二个活动并重新启动第一个活动后这样做了。通过这种方式,由于再次开始活动,listview会得到更新。 我无法
活动1:我有一个图像视图,其中从相机和画廊拍摄的图像被设置,它工作正常。在这个活动中有一个右键单击按钮,它将重定向到第二个活动。 活动2:在这个活动中,我有四个选择 保存 活动3:从上述四个选项中,第三个活动相应地工作。现在我不知道如何将第一个活动中拍摄的图像传递给第三个活动。 我的努力:在从相机拍摄的第一张活动图片中: 在第二个活动SaveVia中: 在第三个名为“保存”的活动中:
问题内容: 我目前正在尝试获取通过REST API调用获取的数据,将其解析为所需的信息,然后将该信息传递给新活动。我使用的是异步HTTP客户端从loopj.com为REST客户端,然后使用我下面的代码,并为当前和未来的活动,分别。 Eclipse不会为我的任何代码传递任何错误,但是当我尝试在模拟器中运行时,当新的活动/视图打开时,我什么也没得到(即白屏)。我尝试在REST CLIENT中使用其他U
我有一个按钮和EditText值。我使用Intent将EditText值从Activity1发送到Activity2。 我在Activity2上使用来自Activity1的EditText值获得Datavalue,并在使用意图单击按钮后将新的Datavalue Activity2发送到Activity3。 我在Activity3页面上有一些数据价值。 如何让这起作用?
次要活动(通过意图向主活动发送“endpoint”字符串): 主活动(从次要活动获取字符串): 在Fragment类上,我试图在TextView上显示数据: 如何修复它并将字符串从一个活动发送到另一个活动上的片段? 下面是XML: