不使用意图移动bundle - android

时间:2017-03-13 21:01:34

标签: java android android-intent

有没有什么方法可以将一组数据从一个类移动到另一个类而不实际更改布局?

例如:

我有3个班级:A,B和C班​​。 现在,B级实现了导航抽屉和底部导航菜单,可以在A类和C类上看到,也可以同时使用。

但是,我在底部导航菜单中有一个按钮,它将我带到C类,但我需要在这里查看的数据是在A类。

有什么方法可以将一组数据发送到B类但不使用意图,然后从B类检索数据并在C类中显示它?

**编辑**

P.S:B是AppCombatActivity扩展类,A和C是Fragment扩展类。

3 个答案:

答案 0 :(得分:1)

我建议使用SharedPreferences文件将数据存储在A类中。然后,您可以从SharedPreferences文件中读取要显示数据的位置。 参考此页 - https://developer.android.com/training/basics/data-storage/shared-preferences.html

答案 1 :(得分:1)

你的问题很容易实现,但它也可能成为一个令人头痛的问题。这就是你应该做的。

A类:

public class A extends Activity {

 static A INSTANCE;
 String data="A"; 

 @Override
  public void onCreate(Bundle savedInstanceState) {

    INSTANCE=this; 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
   }

 public static A getActivityInstance()
   {
     return INSTANCE;
   }

 public String getData()
   {
     return this.data;
   }
}

B级:

public class B extends Activity {

 String data; 

 @Override
  public void onCreate(Bundle savedInstanceState) {
    data=A.getActivityInstance().getData();  
   }
}

诀窍是在A类中创建一个Instance,然后使用该实例使用该实例访问所有公共元素,如方法,变量等。

希望这会有所帮助:)

答案 2 :(得分:0)

您可以使用接口传递数据,这是参考

https://stackoverflow.com/a/9977370/2951976