자바 파일이 3개가 있습니다.
1. MainActivity.java -> Fragment.java를 먼저 실행함.
2. Fragment.java -> 버튼을 클릭하여 Characteristic.java(팝업창)을 화면에 띄움
3. Characteristic.java -> 리스트가 나타나는데, 리스트 클릭시에 dialog 창을 띄우고, dialog 창에서 버튼을 클릭하면 문자열을 다시 Fragment로 돌려보냅니다. 문자열은 onResume에서 받습니다.
(팝업창을 활성화시키는 시점에서, Fragment의 onCreate나 onCreateView는 이미 만들어져 있기 때문에 여기서 문자열을 받을 수 없고, 팝업창이 꺼지는 시점에서 Fragment의 onStart, onResume이 먼저 동작합니다.)
대충 이런 순서로 진행을 하려고 하는데요.
문자열을 보내는걸 어떻게 해야할지 고민입니다...
Bundle로 해봤는데, 인식을 못하는 것 같더라구요..(제 생각에는 MainActivity에서 Fragment를 시작할 때, Bundle을 한번 사용하는데, 이것 때문이 아닌가 하는 생각이 듭니다.)
Fragment.java
public class Fragment extends Fragment {
}
Characteristic.java
public class FlashCharView extends AppCompatActivity {
}
(Fragment에서 리스트 클릭시에 dialog 창을 보여주는 코드입니다.)
ListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String selectedNumber = ((TextView)view.findViewById(R.id.flash_list_number)).getText().toString();
queryshow(selectedNumber);
}
});
(dialog(queryshow)창에서 yes 버튼을 클릭할 때, selectedNumber를 Fragment로 보내려는 코드입니다.)
public void queryshow(String selectedNumber){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("값 전송?");
builder.setMessage(" 번호 : " + selectedNumber);
builder.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// ????
finish();
}
});
builder.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
final AlertDialog dialog = builder.create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface arg0) {
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(Color.RED);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(Color.RED);
}
});
dialog.show();
}