存储变量以在另一个android层

时间:2018-02-06 19:38:44

标签: android android-studio

我在存储变量如何在另一个Android层中对它们进行排序时存在危机。

实施例

我有五(5)个android层,并存储第一层和第二层的变量,以显示最后一层(5)中的变量。

提示 这层是片段。

捕获(1)(2)..跳转数据到(5)

Bundle对我来说不起作用,因为我只是从片段到片段。

此方法是否适用于共享首选项?

还有其他方法吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

我无法判断"此方法是否使用共享首选项?"意味着你已经或者你没有尝试使用SharedPreferences,但我认为你没有。

SharedPreferences存储在键值对中。所以我认为这对你来说是一个很好的选择。

有很多很棒的教程,但是很棒的教程是这样的: https://www.youtube.com/watch?v=fJEFZ6EOM9o

以下是更多文档的链接: https://developer.android.com/reference/android/content/SharedPreferences.html

希望有所帮助:)

答案 1 :(得分:0)

使用共享首选项

是的,您可以将数据存储在共享首选项中。您可以使用默认共享偏好设置将数据保存在一个两个层中,如下所示:

char * b_location(Buffer * const pBD, short loc_offset) {
    if (!pBD)
        return NULL;

    /* Make sure loc_offset doesn't go beyond the length of the array */
    if( ! in_bounds )
        return NULL;

    return &(pBD->cb_head[loc_offset]);
}

然后在第五层(片段)中,只需读取值:

SharedPreferences prefs = SharedPreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().putInt("my value", someValue).apply();

根据您的需要调整代码。

答案 2 :(得分:0)

Shure终于学会使用共享首选项将数据跳转到愿望布局

原始布局

// DECLARE VARIABLES

   //Shared Preferences
public static final String SHARED_PREFS_FILE = "sharedPrefs";
public static final String KEY_TEXT ="text";

//在项目中实施方法

 newListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
     //IN MY ONITEMCLICK

        SharedPreferences sharedPreferences = getContext().getSharedPreferences(SHARED_PREFS_FILE, 0);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(KEY_TEXT, "string_to_update");
        editor.commit();

    }
});

//收到数据的层

投入onNewCreate

@覆盖     public View onCreateView(LayoutInflater inflater,ViewGroup容器,                              Bundle savedInstanceState){         //为此片段扩充布局         查看view = inflater.inflate(R.layout.fragment_nueva_medicion,container,false);

    //SHOW DATA
    muestraCliente = view.findViewById(R.id.textvCliente);
    ShowClienteFragment scf = new ShowClienteFragment();
    SharedPreferences sharedPreferences = getContext().getSharedPreferences(SHARED_PREFS_FILE, 0);
    cliente = sharedPreferences.getString(KEY_TEXT,"");
    showData.setText(cliente);

    return view;
}