如何在加载 activity 后调用函数
How to call a function after activity is loaded
我在 android 中有一个带有 RecyclerView 的 activity。我正在尝试在 OnCreate 中的 RecyclerView 上调用 getChildAt(i),但它 returns 为空。我在为测试创建的按钮点击侦听器中尝试了同样的事情,它 returns 项目很好。这一定是因为 RecyclerView 此时尚未在 OnCreate 中加载其子项,我需要在加载 activity 时访问其第一个子项。一旦加载了 activity 并且在加载 activity 时无需手动按下按钮就可以创建 RecyclerView 的子项,是否可以使用任何形式的监听器来检查?我无法为 activity 或 RecyclerView 找到合适的侦听器。
这是我的基本代码:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mainRec = (RecyclerView) findViewById(R.id.cardList);
mainRec.setHasFixedSize(true);
lm = new LayoutManager(this);
mainRec.setLayoutManager(lm);
mainRecAdap = new HappyAdapter(db.getListData(), this);
mainRec.setAdapter(mainRecAdap);
//this is where I am trying to call getChildAt
}
@Override
protected void onPause()
{
super.onPause();
restoreState();
}
@Override
protected void onResume()
{
super.onResume();
restoreState();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.menu_list, menu);
return true;
}
private void restoreState()
{
setToolbarColor(backgroundColour);
}
@Override
public void onBackPressed()
{
super.onBackPressed();
overridePendingTransition(R.anim.fade_forward, R.anim.right_slide_out);
}
@Override
protected int getLayoutResource()
{
return R.layout.activity_list;
}
谢谢
为什么不使用 RecyclerView
具有的特定附加侦听器:
recyclerView.addOnChildAttachStateChangeListener(new RecyclerView
.OnChildAttachStateChangeListener() {
@Override
public void onChildViewAttachedToWindow(View view) {
}
@Override
public void onChildViewDetachedFromWindow(View view) {
}
});
我在 android 中有一个带有 RecyclerView 的 activity。我正在尝试在 OnCreate 中的 RecyclerView 上调用 getChildAt(i),但它 returns 为空。我在为测试创建的按钮点击侦听器中尝试了同样的事情,它 returns 项目很好。这一定是因为 RecyclerView 此时尚未在 OnCreate 中加载其子项,我需要在加载 activity 时访问其第一个子项。一旦加载了 activity 并且在加载 activity 时无需手动按下按钮就可以创建 RecyclerView 的子项,是否可以使用任何形式的监听器来检查?我无法为 activity 或 RecyclerView 找到合适的侦听器。
这是我的基本代码:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mainRec = (RecyclerView) findViewById(R.id.cardList);
mainRec.setHasFixedSize(true);
lm = new LayoutManager(this);
mainRec.setLayoutManager(lm);
mainRecAdap = new HappyAdapter(db.getListData(), this);
mainRec.setAdapter(mainRecAdap);
//this is where I am trying to call getChildAt
}
@Override
protected void onPause()
{
super.onPause();
restoreState();
}
@Override
protected void onResume()
{
super.onResume();
restoreState();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.menu_list, menu);
return true;
}
private void restoreState()
{
setToolbarColor(backgroundColour);
}
@Override
public void onBackPressed()
{
super.onBackPressed();
overridePendingTransition(R.anim.fade_forward, R.anim.right_slide_out);
}
@Override
protected int getLayoutResource()
{
return R.layout.activity_list;
}
谢谢
为什么不使用 RecyclerView
具有的特定附加侦听器:
recyclerView.addOnChildAttachStateChangeListener(new RecyclerView
.OnChildAttachStateChangeListener() {
@Override
public void onChildViewAttachedToWindow(View view) {
}
@Override
public void onChildViewDetachedFromWindow(View view) {
}
});