获取另一个类的arraylist的大小

时间:2018-12-31 06:10:19

标签: android

你好,我在片段上,想访问我声明为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;

但是没有运气..请帮助我,有更好的方法...

2 个答案:

答案 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的名称。

相关问题