2

여기에 사소한 문제가 있습니다. 대화 상자의 fragment.ie 이름에 recyclerview가 있습니다. recyclerview에서 은행 이름을 선택하면 recyclerview에서 하나의 은행을 선택하고 dialogfragment 후에 해당 이름을 Button에 표시해야합니다. 우리는 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()); 
     } 

가 온 클릭 이벤트 인쇄 :

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

귀하의 목록 내에 귀하의 목록보기가 있습니까? 아니면 귀하의 버튼과 동일한 활동에 있습니까? – sushildlh

+0

DialogRecyclerview를 초기화 할 때 핸들러 또는 사용자 정의 리스너 인터페이스를 전달하십시오. –

+0

당신은 데모를 보여줄 수 있습니까 @pradeep 선생님 – Abhi

답변

0

그냥 콜백을 만들고 및 어댑터에 콜백 인스턴스를 전달 (당신이 이름을 표시 할 위치) 메인 클래스를 구현합니다. 이제 대화 상자 조각, 이제는 어떤 항목을 선택하는 중일 때 기본 콜에서 재정의 된이 콜백 함수를 호출하면이 함수 내에서 버튼의 텍스트 만 변경됩니다. 그냥 대화 생성자의 인수로MainActivity.this을 통과하여 주요 활동에서 dialogfragment을 열 때

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

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