第二活动将不会启动适配器类

如何解决第二活动将不会启动适配器类

我正在尝试创建NBA球队的回收视图列表,当单击每个球队时,它将显示该特定球队的NBA球员的回收视图视图列表。为此,我构建了我的主要活动,它将在OnCreate方法中启动“ NBA_Adapter”,如下所示:

package com.example.nba;


public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
state state = new state();

    private NBA_Adapter adapter;
    
    private RecyclerView recyclerView;
 

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu,menu);
        MenuItem searchItem = menu.findItem(R.id.action_search);
        SearchView searchView = (SearchView) searchItem.getActionView();
        searchView.setonQueryTextListener(this);
        return true;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {//originally 'protected'

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = findViewById(R.id.recycler_view);

        adapter = new NBA_Adapter(getApplicationContext());

        recyclerView.setLayoutManager(new linearlayoutmanager(this,linearlayoutmanager.VERTICAL,false));


    }

}

NBA_Adapter:

package com.example.nba;


public class NBA_Adapter extends RecyclerView.Adapter<NBA_Adapter.NBAViewHolder> implements Filterable {


public static class NBAViewHolder extends RecyclerView.ViewHolder { //constructer for recyclerview adapter
        public LinearLayout containerView;
        public TextView textView;
  

        NBAViewHolder(View view) {

            super(view);

            containerView = view.findViewById(R.id.nba_row);
            textView = view.findViewById(R.id.nba_row_text_view);

            containerView.setonClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) { 
                    TEAMS current = (TEAMS) containerView.getTag();

                    
                    Intent intent = new Intent(v.getContext(),SecondMain.class);
                    intent.putExtra("id",current.getId());
                    v.getContext().startActivity(intent);
                }
            });
        }

    }

}

第二主要:

public class SecondMain extends AppCompatActivity implements SearchView.OnQueryTextListener {
    
    private int team_id;
    private Player_Adapter rapter;
    private RecyclerView mrecyclerView;
    private RecyclerView.LayoutManager layoutManager;


    @Override
    public void onCreate(Bundle savedInstanceState) {//originally 'protected'
Log.v("cs100","I exist!");
        team_id = getIntent().getIntExtra("id",0);
        Log.v("cs100","" + team_id);
     
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_main);
       
        mrecyclerView = findViewById(R.id.mrecycler_view);
        

       
        rapter = new Player_Adapter(getApplicationContext());
      
        mrecyclerView.setLayoutManager(new linearlayoutmanager(this,false));
        state.setstate(false);
        mrecyclerView.setAdapter(rapter);
    }
}

Android清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.nba">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".SecondMain">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />


            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

现在,我可以启动“ SecondMain”类,这是Log.v语句打印的明显证明(这是在此刻,团队而不是团队中的球员正在显示)。由于“ MainActivity”与“ SecondMain”几乎相同,因此我假定类似于“ MainActivity”启动“ NBA_Adapter”的方式,因此“ SecondMain”启动“ Player_Adapter”的方式。 Player_Adapter几乎与“ NBA_Adapter”相同,但根本没有启动。这就是为什么我怀疑问题是我在Android清单中描述“ SecondMain”的原因。我只包括每个课程的相关部分。感谢您提供有关此问题的任何提示链接

编辑:以下包含的Player_Adapter类:

public class Player_Adapter extends RecyclerView.Adapter<Player_Adapter.PlayerViewHolder> implements Filterable {
    private int team_id;
 

    public class myclass extends AppCompatActivity{
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            team_id = getIntent().getIntExtra("id",0);
           

            recyclerView.setAdapter(adapter);

            Log.v("Player",""+ team_id); //Not displaying statement which indicates that "Player_Adapter" is not being launched
        }
    }

    public static class PlayerViewHolder extends RecyclerView.ViewHolder {
        public LinearLayout containerView;
        public TextView textView;

        PlayerViewHolder(View view) {

            super(view);

            containerView = view.findViewById(R.id.Player_List_row);
            textView = view.findViewById(R.id.Player_List_row_text_view);

            containerView.setonClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) { 
                    Players current = (Players) containerView.getTag();
                    Intent intent = new Intent(v.getContext(),Compare_Stats.class);
                    //we get the "fullName"
                    intent.putExtra("id",current.getPlayer_id());
                    v.getContext().startActivity(intent);
                }
            });
        }
    }
 @NonNull
    @Override
    public PlayerViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {

        final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.player_list,parent,false);
        return new PlayerViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull PlayerViewHolder holder,int position) {

        Players current = PlayersList.get(position); 
        holder.textView.setText(current.FullName()); 
        holder.containerView.setTag(current);

    }

    @Override
    public int getItemCount() { 
        return PlayersList.size();
    }
}

解决方法

在类myclass中,您肯定是在设置适配器,但似乎缺少将LayoutManager设置为RecyclerView的代码。

recyclerView.setLayoutManager(new LinearLayoutManager(this/*Context here*/));

另一个建议是,您应该单独保留活动,而不要将其嵌套在适配器中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?