你好,我在片段上,想访问我声明为Arraylist的arraylist大小:
public static ArrayList<Data> mydata;
在“活动”类中
返回大小的方法是:
public int returnsize(){
return mydata.size();
}
在“片段”中,我将其检索为:
//Myaudio is the class/activity from where i want to access
Myaudio myaudio = new Myaudio();
myaudio.returnsize;
但是没有运气..请帮助我,有更好的方法...
答案 0 :(得分:1)
您可以使用回调在活动和Fragment之间进行通话。
这是
创建一个界面,例如:ITalkToActivity
public interface ITalkToActivity{
int getMyDataSize();
}
在您的活动中实施以上操作,您的活动应返回myData列表的大小。
@Override
public int getMyDataSize(){
return mydata.size();
}
private startYourFragment(){
Fragment yourFragment = YourFragment(this) //setting listener i.e ITalkToActivity for fragment
supportFragmentManager.beginTransaction().replace(R.id.root, yourFragment, "YOUR_FRAGMENT").commit()
supportFragmentManager.executePendingTransactions()
}
您的片段构造函数应将ITalkToActivity实例保存在全局变量中,并在需要时访问它。
public class YourFragment extends Fragment{
private ITalkToActivity iTalkToActivity;
YourFragment(ITalkToActivity iTalkToActivity){
this.iTalkToActivity=iTalkToActivity
}
private void yourFunction(){
int dataSize = iTalkToActivity.getMyDatatSize();
}
}
答案 1 :(得分:0)
您可以像这样直接获取静态ArrayList的大小
(ActivityName.mydata != null){
ActivityName.mydata.size();
}
这里ActivityName是ArrayList被拒绝的Activity的名称。