Fragment相关控件扩充ListFragment和DialogFragment

    xiaoxiao2022-07-12  163

    ListFragment和DialogFragment

    ListFragmentDialogFragment

    ListFragment

    ListFragment继承ListFragment底层继承Fragment 自带Listview 重写Oncreat()方法调用setListAdapter() 重写OnListItemClik()实现点击事件.

    布局文件

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ListFragment.ListFrag"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_weight="1" android:orientation="vertical" android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout> <LinearLayout android:layout_weight="1" android:orientation="vertical" android:id="@+id/l2" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout> </LinearLayout> </RelativeLayout> package com.example.day12work.ListFragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import org.greenrobot.eventbus.EventBus; public class MyListFragment extends ListFragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { String[] s=new String[]{"北京","山西","天津"}; ArrayAdapter<String> arrayAdapter=new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,s); setListAdapter(arrayAdapter); super.onCreate(savedInstanceState); } @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Log.e("###", "onListItemClick:"+position ); EventBus.getDefault().post(position); // Dialog dialog = new Dialog(); // dialog.show(getActivity().getSupportFragmentManager(),"wowo"); } } package com.example.day12work.ListFragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; public class MyListFragment1 extends ListFragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { String[] s=new String[]{}; ArrayAdapter<String> arrayAdapter=new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,s); EventBus.getDefault().register(this); setListAdapter(arrayAdapter); super.onCreate(savedInstanceState); } @Subscribe(threadMode = ThreadMode.MAIN) public void getshuju(Integer i){ if(i==1){ String[] s=new String[]{"临汾","运城","洪洞"}; ArrayAdapter<String> arrayAdapter=new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,s); setListAdapter(arrayAdapter); }else if(i==2){ String[] s=new String[]{"成都市","成华市","武侯市"}; ArrayAdapter<String> arrayAdapter=new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,s); setListAdapter(arrayAdapter); }else{ String[] s=new String[]{"海淀区","朝阳区","大兴区"}; ArrayAdapter<String> arrayAdapter=new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,s); setListAdapter(arrayAdapter); } } @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Log.e("###", "onListItemClick:"+position ); } @Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } } package com.example.day12work.ListFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.LinearLayout; import com.example.day12work.R; public class ListFrag extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_fragment); FragmentManager supportFragmentManager = getSupportFragmentManager(); FragmentTransaction ft = supportFragmentManager.beginTransaction(); MyListFragment myListFragment = new MyListFragment(); MyListFragment1 myListFragment1 = new MyListFragment1(); ft.add(R.id.ll, myListFragment); ft.add(R.id.l2, myListFragment1); ft.commit(); } }

    DialogFragment

    DialogFragment继承DialogFragment底层继承Fragment 自带Dialog对话框 重写Oncreateview方法添加子布局通过show()方法展示 Dialog dialog = new Dialog(); //最主要是这个方法 第一个参数为FragmentManager对象 第二个为自己起的名字 dialog.show(getActivity().getSupportFragmentManager(),"wowo");

    package com.example.day12work.ListFragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.day12work.R; public class Dialog extends DialogFragment { @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View inflate = inflater.inflate(R.layout.kong, container, false); return inflate; } }
    最新回复(0)