在活动之间传递数据时遇到非常烦人的问题。
这是我用来成功将进度条的值传递给其他活动的代码:
public void WhenClicked(View view)
{
view.clearAnimation();
Intent intent = new Intent("com.android.Test.QUESTION");
if (progressBar != null)
{
if (progressBar.getProgress() != 0)
{
intent.putExtra("ProgressBarValue", progressBar.getProgress());
}
}
startActivity(intent);
}
好的,这样才有用。现在,当我改变它时,它会爆炸:
public void WhenClicked(View view, String category)
{
view.clearAnimation();
Intent intent = new Intent("com.android.Test.QUESTION");
intent.putExtra("Category", category);
if (progressBar != null)
{
if (progressBar.getProgress() != 0)
{
intent.putExtra("ProgressBarValue", progressBar.getProgress());
}
}
startActivity(intent);
}
我不明白问题是什么。我甚至尝试将它全部粘贴到一个捆绑包中并添加捆绑包作为额外的 - 这也使它崩溃了。也许我是愚蠢的,我只是盯着我的代码太久了,但任何帮助都会很棒!
这是我第一次使用Android而它正在杀了我!
先谢谢你们!
答案 0 :(得分:3)
首先,您需要创建bundle object(Bundle bnd=new Bundle();)
和下一个bnd.putString("param1", "test");
下一步创建意图:
Intent myIntent = new Intent(current classname.this,nextactivity.class);
myIntent.putExtras(bnd);
startActivityForResult(myIntent, 0);
在第二个活动中你需要获得像:
这样的bundel值 Bundle bundle = this.getIntent().getExtras();
String _getData=bundle.getString("param1");
答案 1 :(得分:0)
假设您有一个名为QUESTION的活动,您可能会尝试将.class放在最后以及第一个参数的“this”:
Intent intent = new Intent(this, QUESTION.class);
如果您没有QUESTION活动,那么这是另一个问题。我假设你的活动在同一个应用程序中?
答案 2 :(得分:0)
我相信,应该处理此意图行为com.android.Test.QUESTION
的活动并不理解您的类别,intent.putExtra("Category", category);
。
您可以尝试以两种方式修复它:
Intent intent = new Intent("youCurrentClass","theClassYouWantToCall");
而不提供其他类别,这将启动指定的活动。在显式Intent的情况下,Android系统不会与intent-filters进行比较,以匹配Intent Object。希望这有帮助,
SKU