片段Onclick侦听器

时间:2018-12-30 23:02:44

标签: android android-studio android-fragments kotlin android-fragmentactivity

我在项目中使用了底部导航活动。其中包含以下活动。我正在使用kotlin语言。我不确定在底部导航活动中如何从一个片段路由到另一个片段。任何帮助表示赞赏。

代码:

public function index($id) {
    $viaje = Viaje::find($id);
    $users = User::orderBy('id', 'asc')->get();
    // usersPdf is the view that includes the downloading content
    $view = \View::make('usersPdf', ['viaje' => $viaje, 'users' => $users]);
    $html_content = $view->render();
    // Set title in the PDF
    PDF::SetTitle("List of users");
    PDF::AddPage();
    PDF::writeHTML($html_content, true, false, true, false, '');

    //PDF::Output('userlist.pdf');
    $fileatt = PDF::Output($name='yourfilename.pdf', $dest='E');

    $pdf = chunk_split($fileatt);

    $contactopro = Contactoviajespro::find($id);

    $data = [
        'link' => 'http://',
        'contacto' => $contactopro->name,
    ];


    Mail::send('emails.notificacion', $data, function($msg) use($pdf) {
        $msg->from('administracion@buendialogistica.com', 'Javier');
        $msg->to('xavieeee@gmail.com')->subject('Notificación');

        $msg->attachData($pdf, 'orden.pdf');

    });

    return redirect()->route('home')
                    ->with(['message' => 'Email enviado correctamene']);
}

活动

https://github.com/joshvapeter/KotlinBottomNavigationNew

期望

当我单击“一个碎片回收者视图项目”时,它需要自动将其路由到下一个底部标签中的“两个碎片回收器视图项目”中。下面是我在项目中使用的代码。

代码

片段一适配器

1)One Main Activity 
2)Two Fragments
3)Two Adapter Class
4)Two Layout files

MainActivity

        itemView.setOnClickListener {

           Log.d("Fragment One Clicked","Fragment One Clicked")
            //FragmentTwo()

            }

1 个答案:

答案 0 :(得分:1)

我没有足够的声誉来添加评论。因此,根据我的理解,我正在编写此答案。如果我的理解是错误的,请发表评论。

据我了解,您想在FragmentOne的RecyclerView中单击某个项目时移至FragmentTwo。您可以通过以下方式实现它:

FragmentOne

fun onItemSelected(item:MyModel){
    (activity as MainActivity).showFragmentTwo(item)
}

FragmentOneAdapter

class FragmentOneAdapter(val fragment:FragmentOne,val myList:ArrayList<MyModel>):RecyclerView.Adapter<MyViewHolder>(){
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): MyViewHolder {
    //your code to create view holder
}

override fun onBindViewHolder(p0: MyViewHolder, p1: Int) {
    p0.bindItem(myList[p1], fragment)
}

override fun getItemCount(): Int {
    return myList.size
}

class MyViewHolder(view:View):RecyclerView.ViewHolder(view){
    fun bindItem(item:MyModel,frag:FragmentOne)=with(itemView){
        setOnClickListener{
            frag.onItemSelected(item)
         }
      }
   }
}