2

ここにはマイナーな問題があります。リサイクル・ビュー内のバンクの名前です。リサイクル・ビューでバンクを1つ選択すると、私たちはUnion Bankを選択しました。これはボタンに表示されるはずです。私たちはここにリスナーダイアログ・フラグメントからのボタン・テキストの変更の問題

を閉じたときにいうし、ボタン上のテキストの変更をクリックすると、問題があるダイアログ解雇コードです:ここで

mRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(getContext(), mRecyclerView, new ClickListener() { 
     @Override 
     public void onClick(View view, final int position) { 
      Employee e = bank.get(position); 
      Toast.makeText(getContext(), e.getBank_id() + "" + e.getBank_name(), Toast.LENGTH_SHORT).show(); 
      getDialog().setOnDismissListener(new DialogInterface.OnDismissListener() { 
       @Override 
       public void onDismiss(DialogInterface dialogInterface) { 
        Employee e = bank.get(position); 
        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext()); 
        SharedPreferences.Editor edit = sp.edit(); 
        edit.putString("bankname", e.getBank_name()); 
        edit.commit(); 
       } 
      }); 
      c.onItemSelect(e.getBank_name()); 
      onDismiss(getDialog()); 
     } 

はonclickのダイアログが開き、イベント、どこ価値があるべきです印刷:

select_button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      FragmentManager fm=getFragmentManager(); 
      DialogRecyclerview dr = new DialogRecyclerview(AccountManagement_banks.this,callback); 
      dr.setRetainInstance(true); 
      dr.show(getSupportFragmentManager(), "Dialog"); 
      SharedPreferences st = PreferenceManager.getDefaultSharedPreferences(AccountManagement_banks.this); 
      String mode=st.getString("bankname",""); 
      select_button.setText(mode); 
      Toast.makeText(getApplication(),mode,Toast.LENGTH_SHORT).show(); 
     } 
    }); 

同じで:

@Override 
public void onItemSelect(String text) { 
    select_button.setText(text); 
} 

ここで私は、新しいインターフェイスを作成していた:

public interface CallBack { 
     void onItemSelect(String text);} 
+0

あなたのfragemntの中にあなたのリストビューがありますか、それともあなたのボタンと同じアクティビティですか? – sushildlh

+0

DialogRecyclerviewを初期化するときにハンドラまたはカスタムリスナインタフェースを渡します。 –

+0

あなたは私にデモ@pradeepさんを表示できますか? – Abhi

答えて

0

だけでコールバックを作成し、メインクラスでそれを実装する(あなたが名前を表示したい場所)とアダプタにコールバックインスタンスを渡します。今すぐダイアログの断片、あなたがメインコールでオーバーライドされたコールバック関数を呼び出すだけで、この関数内でボタンのテキストを変更するだけの項目を選択しているとき。

public interface CallBack { 

void onItemSelect(String text); 

} 

あなたがメインの活動からあなたdialogfragmentを開いているときだけでダイアログコンストラクタで引数としてMainActivity.thisを渡す

public class MainActivity extends Activity implements CallBack { 
. 
. 
. 
public void onItemSelect(String text){ 
    button.setText(text); 
} 
. 
. 
} 
ようなあなたのメインクラスでこれを実装します。そして、あなたのダイアログクラスのコンストラクタにこの

private Callback callback; 
public YourDialog(Context context, Callback callback){ 
this.callback = callback; 
} 

とするときに、リスト項目を選択するようにコードを書くだけで

callback.onItemSelect(e.getBank_name()); 

を呼び出し、それはあなたを助けることを願っています。

+0

コードで少しだけ私を見せてもらえますか? – Abhi

+0

私は私の答えを変えました。 –

+0

私はまだこのメソッドを使用していた....... – Abhi

関連する問題