在导航菜单中单击添加到列表视图

问题描述 投票:-2回答:2

enter image description here

我在导航视图中添加了RecyclerView。然后将listArray添加到RecyclerView。但是我无法为该onclick项目实现RecyclerView侦听器。实现OnNavigationItemSelectedListener是否正确?请告诉我如何实现onclicklistener。这是我的代码。

MainActivity中,我要像这样添加字符串列表数组

 class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
  val recyclerview = findViewById<RecyclerView>(R.id.menuitems)
    recyclerview.layoutManager =
        LinearLayoutManager(this.applicationContext, RecyclerView.VERTICAL, false)
   val names = Arrays.asList(*resources.getStringArray(R.array.dashboard_menu))
    val adapter = sidemenuAdapter(names)
    recyclerview.adapter = adapter

布局文件

<com.google.android.material.navigation.NavigationView
        android:id="@+id/sidenavi"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/sidenavi_headerlayout"
        app:itemTextAppearance="@style/MyCustomTextAppearance"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.022"
        >



        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/menuitems"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="120dp"
            android:layout_marginBottom="50dp" />
</com.google.android.material.navigation.NavigationView>

在onNavigationclicklistener中,我尝试过这种方法,但是它不起作用

 override fun onNavigationItemSelected(item: MenuItem): Boolean {
      when(item.order){
          2-> startActivity(Intent(this@MainActivity, TimetableActivity::class.java)) 

      }
        return true
    }

strings.xml

<string-array name="dashboard_menu">
        <item>Home</item>
        <item>Class Time Table</item>
        <item>Leave Request</item>
        <item>Attendance Information</item>
        <item>Exam result</item>
        <item>Visual Tour</item>
        <item>About </item>
        <item>Careers</item>
        <item>Events</item>
        <item>Previews</item>
        <item>General Enquiry</item>
        <item>Live Chat</item>
        <item>FAQ\'s</item>
        <item> Club / Membership</item>
        <item>Contact Us</item>
        <item>Logout</item>
    </string-array>

谁能告诉我如何点击此数组项来实现

android kotlin navigation-drawer
2个回答
0
投票

一旦确定此链接可能会有所帮助,请检查此链接

https://antonioleiva.com/recyclerview-listener/


0
投票

我认为您需要使用NavigationView和与之关联的menu.xml,您无需在RecyclerView内使用NavigationView

这里是一个简短的教程,可能会帮助您进行设置,其中还包括onClickhttps://www.journaldev.com/12648/navigationview-android

编辑:如果您承诺使用RecyclerView,则应进入适配器并设置onClickListener

public static class ViewHolder extends RecyclerView.ViewHolder
        implements View.OnClickListener {
    private String mItem;
    private TextView mTextView;

    public ViewHolder(View view) {
        super(view);
        view.setOnClickListener(this);
        mTextView = (TextView) view;
    }

    public void setItem(String item) {
        mItem = item;
        mTextView.setText(item);
    }

    @Override
    public void onClick(View view) {
        Log.d(TAG, "onClick " + getPosition() + " " + mItem);
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.