0
RecyclerViewアダプタ内でメソッドを定義し、MainActivityから呼び出すことはできますが、できません。私を案内してください。メソッドをアダプタ内で定義し、MainActivityから呼び出します
マイMainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GetDataAdapter1 = new ArrayList<>();
recyclerView = (RecyclerView) findViewById(R.id.recyclerView1);
recyclerViewlayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(recyclerViewlayoutManager);
JSON_DATA_WEB_CALL();
recyclerViewadapter = new RecyclerViewAdapter(MainActivity.this, GetDataAdapter1, this);
recyclerView.setAdapter(recyclerViewadapter);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
int firstVisible = manager.findFirstVisibleItemPosition();
int lastVisible = manager.findLastVisibleItemPosition();
Log.i("TAG", "onScrolled: " + firstVisible);
Log.i("TAG", "Last Index: " + lastVisible);
recyclerViewadapter.changeItem(firstVisible,lastVisible);
}
});
マイアダプタ
@Override
public int getItemCount() {
return getDataAdapter.size();
}
public void changeItem(int position){
firstVisible = position;
notifyItemChanged(firstVisible);
notifyDataSetChanged();
}
class ViewHolder extends RecyclerView.ViewHolder{
public TextView IdTextView;
public TextView NameTextView;
public TextView PhoneNumberTextView;
public TextView SubjectTextView;
私はあなたが一つのパラメータを持つ関数を宣言しMainActivity
HI @ Grisu ,,もし私がMainActivityのadapter.MethodNameをgivinfしているのであれば、Adaper内でメソッドを作成するオプションを表示する必要がありますが、作成することができません。 –
さて、私は少し助けてください。私はMainActivityでScrollListenerを使用しています。私はアダプタで2つのパラメータを定義するだけです: 'method(int param1、int param2)これは、アダプタに2つのパラメータを定義することで、MainActivyt –
にアクセスすることができます。 ' – Grisu47