2016-11-25 8 views
0

私は初心者です。イメージを4つ作成し、それぞれのイメージの下にテキストを追加しました。 イメージの名前を変更しました。私のフラグメントで共有prefrencesを使用しています。私は次のフラグメントに行くと私は 戻って来た私のフラグメントを編集したテキストが表示されていません..私はレイアウト.. ..誰でも私の助けを借り... ....次のコードの断片の書き込みのごonCreateViewでコード編集可能なテキストとそのテキストをアンドロイドに保存

 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

OnCreateViewのTextViewには、SharedPreferencesから取得してテキストを設定する必要があります。 @Anjaliの答えに従ってください。 –

答えて

1

は、それが動作します:

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","")); 
     } 
    } 
関連する問題