当通过Cordova插件从Activity跳转到活动时,我希望能够将其他信息放入一个包中并将其与意图一起传递。我似乎在获取当前活动时遇到问题,然后通过
获取值public int getCounter(){return counter;}
我有一个活动定义, onCreate 将设置计数器来自传入的包中的值。
我有一个我正在使用的Cordova插件,它将执行下一个活动的意图。
Echo Class是一个基于html点击的活动之间的跳跃。
//In the Class: public class Echo extends CordovaPlugin
private void launchSecondActivity(String data, CallbackContext cc){
Bundle b = new Bundle();
int tmp = ((SecondaryActivity)cordova.getActivity()).getCounter();
tmp++;
b.putInt("id", tmp);
Intent i = new Intent(cordova.getActivity().getApplicationContext(), SecondaryActivity.class);
i.putExtras(b);
cordova.getActivity().startActivity(i);
cc.success();
}
当我试图在tmp中为tmp分配计数器时,它似乎会引起各种类型的错误:
int tmp = ((SecondaryActivity)cordova.getActivity()).getCounter();
我有什么问题吗?我正在尝试获取当前活动的活动,然后在该活动中调用公共函数。
结束目标:我正在尝试获取一个int,并继续将其传递给意图,递增。这样,它就会知道活动链的深度。我正在研究嵌套状态保存,并对任何给定时间的深度感到好奇。传递给活动的tmp每次都会递增,因此它将保持深度。
答案 0 :(得分:0)
不是使用get计数器创建一个类,而是将int存储在Bundle中并将其传递给下一个活动将会容易得多。
示例:
//send item to plugin.
int item = 0; // or whatever it is
Bundle b = new Bundle();
b.put("ident", item);
Intent i = new Intent();
i.putExtras();
//...
然后是下一个活动。
public void onCreate(Bundle savedInstanceState)
{
int item = getIntent().getExtras().getInt("ident");
}
然后你可以用它做你想做的事。答案整体而前一个活动为旧号码。那是什么意思?这意味着在将其传递给下一个活动时,您可以使用它增加并执行任何操作。它被复制,因此您可以递增地递增并存储它。甚至可以说:
if (item ==0){/*set new source for Activity*/}
else if(item == 1){/*set source 2*/}
//etc.