open coding
open coding- Dialog Fragment 기본코딩/ Android studio 안드로이드 스튜디오
◀ ▷ ▶ ♤ ♠ ♡ ♥ ♧ ♣ ⊙e
2020. 11. 18. 17:32
반응형
//1. 버튼 누르면 dialog fragment 실행
// 2. Dialog Listener : dialog fragment 버튼 누르면 mainActivity의 textview에 글자띄우기

<Fragment class>
package com.example.dialgfragment;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class SubFragment extends androidx.fragment.app.DialogFragment {
public SubFragment() {
// Required empty public constructor
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
//어디다?
MainActivity activity = (MainActivity) getActivity();
//Dialog 설정
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("타이틀 입니다.");
builder.setMessage("메시지 입니다");
//listener 적용
DialogListener listener = new DialogListener();
builder.setPositiveButton("positive",listener);
builder.setNeutralButton("neutral",listener);
builder.setNegativeButton("negative",listener);
AlertDialog alert = builder.create();
return alert;
}//finish
// 버튼 누르면 반응-> listener이용/ fragment내에선 onclick방식 못씀
class DialogListener implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialog, int which) {
//어디다?
MainActivity activity = (MainActivity)getActivity();
switch (which){
case DialogInterface.BUTTON_POSITIVE :
activity.text1.setText("possitive");
break;
case DialogInterface.BUTTON_NEUTRAL :
activity.text1.setText("neutral");
break;
case DialogInterface.BUTTON_NEGATIVE :
activity.text1.setText("negative");
break;
}
}
}//finish -> listener 적용 ㄱㄱ
}
<MainActivity class>
package com.example.dialgfragment;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
//1. 버튼 누르면 dialog fragment 실행
// 2. Dialog Listener : dialog fragment 버튼 누르면 mainActivity의 textview에 글자띄우기
//define variables
TextView text1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//connect to xml id
text1= findViewById(R.id.textView);
}//finish
//button 누르면 dialog fragment 실행 -> onclick ㄱㄱ
public void btnMethod(View view){
//fragment 객체생성 like call constructor
SubFragment sub = new SubFragment();
FragmentManager manager = getSupportFragmentManager();
//fragment dialog 띄우기
sub.show(manager,"바보야"); //tag는name같은 것으로 암거나.
}
}