2016-11-25 36 views
0

我是初学者android..i创建四个图像,并在每个图像下面我添加文本 为该图像我添加了重命名选项通过长时间点击文本..for存储改名 文本我使用共享prefrences我fragment..if我,我去下一个片段,如果我 回来我的片段编辑的文本不displaying..its显示我加在layout..can文字的人帮我....下面是我的代码可编辑的文本和存储该文本在Android

 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; 

     } 


    }); 
+0

您应该从SharedPreferences中获取onCreateView的TextView上的文本。按照@Anjali的答案。 –

回答

1

在你的下面的代码片段写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. 
+0

anjali我试过同样的问题,我不知道我做了什么错误...你可以发送完整的代码 –

+0

你可以发送完整的代码 –

0

在这里你去!将这添加到你的片段代码中!

@Override 
    public void setUserVisibleHint (boolean isVisibleToUser){ 
     super.setUserVisibleHint(isVisibleToUser); 
     if (isVisibleToUser) { 
      yourTextView.setText(""+yourSharedPrefObject.getString("Str","")); 
     } 
    }