有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在哪里声明RecyclerView,RecyclerView。适配器和回收视图。布局经理?

我有两个recycleView的例子,一个是在onCreate方法中声明上述内容,另一个是在MainActivity中。有什么区别吗?一个是对的还是错的?我猜这不是安卓的概念,而是java的概念。这是密码

package com.commonsware.jetpack.samplerj.recyclerview;

import 安卓.os.Bundle;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import 安卓x.appcompat.app.AppCompatActivity;
import 安卓x.recyclerview.widget.DividerItemDecoration;
import 安卓x.recyclerview.widget.LinearLayoutManager;
import 安卓x.recyclerview.widget.RecyclerView;

public class MainActivity extends AppCompatActivity {
  private final Random random = new Random();

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

    RecyclerView items = findViewById(R.id.items);
    ColorAdapter adapter = new ColorAdapter(getLayoutInflater());

    adapter.submitList(buildItems());
    items.setLayoutManager(new LinearLayoutManager(this));
    items.addItemDecoration(
      new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
    items.setAdapter(adapter);
  }

  private List<Integer> buildItems() {
    ArrayList<Integer> result = new ArrayList<>(25);

    for (int i = 0; i < 25; i++) {
      result.add(random.nextInt());
    }

    return result;
  }
}

另一个例子

public class MyActivity extends Activity {
    private RecyclerView recyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager layoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_activity);
        recyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

        // use this setting to improve performance if you know that changes
        // in content do not change the layout size of the RecyclerView
        recyclerView.setHasFixedSize(true);

        // use a linear layout manager
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);

        // specify an adapter (see also next example)
        mAdapter = new MyAdapter(myDataset);
        recyclerView.setAdapter(mAdapter);
    }
    // ...
}

共 (1) 个答案

  1. # 1 楼答案

    从问题和代码中我可以了解到,示例中的两个recyclerviews都在每个活动的onCreate方法中被调用,布局管理器也在onCreate方法中被分配。所以我不认为这有什么区别。我可以告诉你的是,这两个例子都没有遵循坚实的原则

    试着在这里阅读固体原理:Medium about solid principles

    此外,第二个示例似乎没有为布局管理器添加方向,而第一个示例使用项目装饰器来实现这一点

    我希望我答对了你的问题