我有两项活动。
家庭活动包含一个列表视图,其中包含两个名为 checkIn 和指示的按钮。单击checkIn按钮时,它会执行一些操作(例如A)。
当点击方向按钮时,它会启动方向活动。所以在方向活动中,如果某些条件满足,则会出现一个警告框,询问是否检查是否。如果单击是,我想在签到按钮上执行操作A但是在不破坏方向活动的情况下,我想在其他活动中控制具有警报框状态的OnclickListener按钮,而不会丢失当前活动的状态。
这是Listview of Home activity使用的Listadapter的getView中的代码部分.btnChild1是CheckIn按钮。
btnChild1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (btnChild1.getText().toString().equals("Check In")) {
btnChild1.setText("Cancel");
taskSubList.get(position).setCheckIn(1);
startTime = System.currentTimeMillis();
} else {
btnChild1.setText("Check In");
taskSubList.get(position).setCheckIn(0);
long difference =taskSubList.get(position).getTimeSpent() +System.currentTimeMillis() - startTime;
taskSubList.get(position).setTimeSpent(difference);
String values[]={Integer.toString(taskSubList.get(position).getId()), Integer.toString((int) difference)};
String updateTime=Helper.getfromUrl(updateTimeUrl,values);
if (!updateTime.equals("success"))
{
Toast.makeText(context, "Not updated", Toast.LENGTH_SHORT).show();
}
Intent reasonIn = new Intent(context.getApplicationContext(), Reason.class);
context.startActivity(reasonIn);
}
}
});
在Directions.java中
if((int)distance/1000 <= 30 && checkInStatus == 0)
{
AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
alertbox.setMessage("Do you want to Check In?");
alertbox.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
// I have to do the above function
}
});
alertbox.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
}
});
alertbox.show();
}
答案 0 :(得分:2)
“不破坏方向活动” - 只是不要调用finish()方法,活动不会被销毁,但只能保留“onPause”。
在你的情况下,你需要更具体的检查内容。如果它以某种方式改变了第一个活动的UI,或者不是。例如。
如果checkln只显示某些内容(图片,文字,来自网络服务的数据),请致电
StartActivityForResult(Intent intent, int requestCode);
然后当完成显示信息的时间时,只需完成新创建的活动并调用
SetResult(int resultCode);
并且您将返回第二个活动,显示与显示警报框之前显示的内容相同的内容。
答案 1 :(得分:1)
你可以做的是编写一个checkIn函数并将这两个按钮绑定到它,这一切都取决于你需要做什么。这样您就可以创建一个处理checkIn等的实用程序类,但是将activity.Home和activities.Directions中的按钮绑定到实用程序类中的操作A.
答案 2 :(得分:1)
你要做的是:
导入所需的库:
import android.app.Activity;
在您的辅助活动中,您可以定义:
public static Activity myActivity;
然后,在您的主要活动中,您说:
SecondaryActivityName.myActivity=this;
最后,当你想从次要活动中调用主活动的那个按钮时:
Button myButton=(Button) SecondaryActivityName.myActivity.findViewById(R.id.ButtonID);
myButton.setOnClickListener(this);