【问题标题】:Comunication from activity to fragment从活动到片段的通信
【发布时间】:2017-06-09 13:16:39
【问题描述】:

单击列表视图的图像和文本视图时,我需要从一个活动的列表视图转到一个片段。

我有一个适配器:

public class AdapterResultList extends BaseAdapter {

    Context contexto;
    List<DirectoryData> ListaDirectorio;
    Fragment fragment = null;

    public AdapterResultList(Context contexto, List<DirectoryData> listaDirectorio) {
        this.contexto = contexto;
        ListaDirectorio = listaDirectorio;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View vista = convertView;
        LayoutInflater inflate = LayoutInflater.from(contexto);
        vista = inflate.inflate(R.layout.details_list_directory,null);

        TextView professionalName = (TextView) vista.findViewById(R.id.doctors_name);

        ImageView imagen1 = (ImageView) vista.findViewById(R.id.subcategory_image);               
        professionalName.setText(ListaDirectorio.get(position).getProfessionalName().toString());        
                           imagen1.setImageResource(ListaDirectorio.get(position).getImagen1());


        return vista;
    }
}

在活动中:

public class ResultSearch extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result_search);

    listaProf = (ListView) findViewById(R.id.list_profesionals);

            ListaDr = new ArrayList<DirectoryData>();
            ListaDr.add(new DirectoryData("Dr. Pedro Perez", R.drawable.successright));
            ListaDr.add(new DirectoryData("Dr. Juan Rodriguez", R.drawable.searchbanner));

            AdapterResultList miadaptador = new AdapterResultList(getApplicationContext(), ListaDr);
            listaProf.setAdapter(miadaptador);
    }
}

点击 imageview 或 textview 时,我只需要转到 DoctorsDetailsFragment。我不需要发送数据。

【问题讨论】:

  • 在适配器中使用点击监听并从适配器调用片段
  • 是的,我认为,但是如何从适配器调用片段?对不起,我是新来的。

标签: java android android-activity fragment


【解决方案1】:

您可以使用 setArguments 将参数传递给 Fragment。使用以下方法

Fragment fragment = new StaticContent();
Bundle bundle = new Bundle();
bundle.putString("Key", "Value");
fragment.setArguments(bundle);
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).addToBackStack(null).commitAllowingStateLoss();
fragmentManager.executePendingTransactions();

【讨论】:

  • 我只需要从活动转到片段,就像活动之间的 Intent-starActivity 一样,但从活动到片段。
【解决方案2】:

1.Override OnDataBind适配器的方法和内部使用onClickListenerTextView或图像....搜索你会得到大量的代码。

2.从activityfragment ....只需使用另一个虚拟activity,其中将加载实际的fragment

当您从另一个人那里拨打 activity 时,照常开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多