반응형
//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같은 것으로 암거나.
}
}
'open coding' 카테고리의 다른 글
open coding. 이미지 리소스 res>drawable> image.xml 만들기 (0) | 2020.11.26 |
---|---|
open coding - Recourse(String.xml, String_array.xml..etc.) (0) | 2020.11.26 |
open coding- Listfragment - fragment로 ListView 사용하기. (0) | 2020.11.17 |
open coding - fragment 기본 코딩 (0) | 2020.11.16 |
open coding- 시스템 메시지- broadCastreceiver 이용 ex)부팅완료 Toast로 띄우기 / 수신메세지 Toast로 띄우기 (0) | 2020.11.13 |