java - 可编辑文本并将该文本存储在 android 中

标签 java android

我是 android 初学者..我创建了四个图像,并在每个图像下方添加了文本 对于该图像,我通过长按文本添加了重命名选项..用于存储重命名的 文本我在我的 fragment 中使用共享首选项..如果我转到下一个 fragment 并且如果我 回来我的 fragment 编辑文本没有显示..它显示我在布局中添加的文本..任何人都可以帮助我....下面是我的代码

     public class MyFragment extends Fragment {
     @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.ac_listview, container, false);

    final TextView text1 = (TextView) view.findViewById(R.id.textView8);

          ImageView image1 = (ImageView) view.findViewById(R.id.imageView3);


    image1.setOnClickListener(new Button.OnClickListener() {
        @Override
        public void onClick(View _view) {
            int viewId = _view.getId();
            FragmentTransaction ft;
            switch (viewId) {
                case R.id.imageView3:
                    FragmentManager fm = getFragmentManager();
                    ft = fm.beginTransaction();
                    NEXTFRAGMENT nextFragment = new NEXTFragment();

                   ft.replace(R.id.frame_content, nextFragment);
                    ft.addToBackStack(null);
                    ft.commit();
                    break;

            }


        }
    });

    text1.setText("green");

    text1.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            LayoutInflater inflater = ((Activity) getActivity()).getLayoutInflater();

            View view = inflater.inflate(R.layout.name_edit, null);
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());

            alertDialogBuilder.setView(view);

            final AlertDialog alertDialog = alertDialogBuilder.create();

            Button done = (Button) View.findViewById(R.id.edit_done);
            final TextView new1 = (TextView) View.findViewById(R.id.name);

            done.setOnClickListener(new Button.OnClickListener() {
                @Override
                public void onClick(View view) {

                   String str = new1.getText().toString();

                    if(str.equals(""))
                    {
                        new1.setError(Constants.NOT_EMPTY);

                    }
                    else{
                        text1.setText(str);
                        SharedPreferences.Editor editor = MAINActivity._sharedPreferences.edit();
                        editor.putString("Str", str);
                       editor.commit();
                        alertDialog.dismiss();
                    }

                }

            });
            alertDialog.show();

            return true;

        }


    });

最佳答案

在 fragment 的 onCreateView 中编写以下代码它将起作用:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String imgUpdateName = prefs.getString("Str", "");
text1.setText(imgUpdateName);

所以你的 onCreateView 将是:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.ac_listview, container, false);

    final TextView text1 = (TextView) view.findViewById(R.id.textView8);

          ImageView image1 = (ImageView) view.findViewById(R.id.imageView3);
 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    String imgUpdateName = prefs.getString("Str", "");
    text1.setText(imgUpdateName);

.......

Your remaining fragment code.

关于java - 可编辑文本并将该文本存储在 android 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40802794/

相关文章:

android - 如何在 Android Studio Bumblebee 中添加插件

java - 异常创建无状态 session bean

java - 如何在java中捕获groovy抛出的异常?

java - 方法中的代码是否总是被执行?

android - 您如何在不基于 gradle 构建的 android 项目中使用 ShowcaseView 库?

android - 将较小的应用程序集成到 Android 上的较大应用程序中

java - 无法使用 Socket 连接将数据发送到 c 服务器

java - 如何使用 session ID 创建 session 对象?

手机上的 JavaScript keydown

java - android 对于可 ScrollView 来说文本太长