java - 将卡片 View 放入 fragment 中

标签 java android android-fragments cardview

我使用几个 fragment 制作了一个选项卡菜单。我将在每个 fragment 中放置一个卡片 View 。 我尝试了谷歌搜索,但我所要做的就是将卡片 View 放在 Activity 中。

我想在 Fragment 中放置一个 cardview,然后我想实现在单击卡片时启动预定义的设置 Activity 。

我该怎么办?

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.aeyoung.csw.CommunityFragment">

  <!-- TODO: Update blank fragment layout -->

  <android.support.constraint.ConstraintLayout 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="com.aeyoung.csw.CommunityFragment">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </android.support.v7.widget.RecyclerView>

  </android.support.constraint.ConstraintLayout>
</FrameLayout>
  • 我还添加了 fragment 代码(java文件)
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class CommunityFragment extends AppCompatActivity {
    //Create parameter
    List<Product> productList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_community);

        // initialize parameter "productList"
        setInitialData();

        //Find RecyclerView from fragment_community.xml
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list);

        // Create LinearLayoutManager and set it to RecyclerView
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);

        //Create MyAdapter object with the parameters and set to RecyclerView
        MyAdapter myAdapter = new MyAdapter(this, productList);
        recyclerView.setAdapter(myAdapter);
    }

    private void setInitialData() {
        productList.add(new Product("text1", "text1", R.mipmap.ic_launcher));
        productList.add(new Product("text2", "text2", R.mipmap.ic_launcher));
        productList.add(new Product("text3", "text3", R.mipmap.ic_launcher));
        productList.add(new Product("text4", "text4", R.mipmap.ic_launcher));
        productList.add(new Product("text5", "text5", R.mipmap.ic_launcher));
        productList.add(new Product("text6", "text6", R.mipmap.ic_launcher));
        productList.add(new Product("text7", "text7", R.mipmap.ic_launcher));
        productList.add(new Product("text8", "text8", R.mipmap.ic_launcher));
        productList.add(new Product("text9", "text9", R.mipmap.ic_launcher));
        productList.add(new Product("text10", "text10", R.mipmap.ic_launcher));
    }
}

PageAdapter.java代码

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

/**
 * Created by abdalla on 2/18/18.
 */

public class PageAdapter extends FragmentPagerAdapter {

    private int numOfTabs;

    PageAdapter(FragmentManager fm, int numOfTabs) {
        super(fm);
        this.numOfTabs = numOfTabs;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return new MajorFragment();
            case 1:
                return new FresherFragment();
            case 2:
                return new CommunityFragment();
            case 3:
                return new SettingsFragment();
            default:
                return null;
        }
    }

    @Override
    public int getCount() {
        return numOfTabs;
    }
}

并且在构建的时候出现如下错误。 “错误:类型不兼容:无法将 CommunityFragment 转换为 fragment ”

最佳答案

因为错误告诉你 “错误:不兼容的类型:CommunityFragment 无法转换为 Fragment” 你的 CommunityFragment 扩展了 AppCompatActivity 而它不是 fragment 。

关于java - 将卡片 View 放入 fragment 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58039558/

相关文章:

android - Ionic React : useHistory(). push() 在点击 FCM 通知时不起作用

java - 如何读取带有空格的文本文件 android java

android - 单击列表项时如何从一个 fragment 切换到另一个 fragment ?

java - 在 Docker 中运行的 Apache FTP 客户端在从外部服务器检索文件内容时出现问题

java - Android Studio Activity 未启动

android - 从 onCreate 调用 addPreferencesFromResource 时在 PreferenceFragment 中使用 onCreateView 的奇怪错误

android - 如何获取 ViewModel?

java - Tomcat 8 DIGEST 身份验证不断要求输入密码

java - 用于比较器的 Junit 匹配器?

java - 在 onCreateView 之外使用 findViewById 返回 null