Java,试图将字符串数组从一个类传递到另一个类

时间:2015-12-10 17:07:33

标签: java android arrays

我在android studio中创建一个Android应用程序,我需要将一个字符串数组从一个类传递到另一个类。 它似乎没有工作思想,我无法找到真正的错误。 我试着用构造函数来做。

我会省略不必要的代码。

class MyFragment extends Fragment{


   //I create a string array to pass on the other class

    public String likeTitles[] ={"mazda","whynot","OHYEAAAaa","ok","1983198312893"};


    public MainFragment(String s1[]){

            s1= likeTitles;
        }
}


public class List extends ListActivity{

    String myStringArr[]=new String[5];

    MainFragment myFrag = new MainFragment(myStringArr);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getListView().getContext(), android.R.layout.simple_list_item_1, myStingArr);
            getListView().setAdapter(adapter);
    }

我尝试使用带有类的字符串数组,并且它适用于我的适配器,但这不起作用。

3 个答案:

答案 0 :(得分:0)

您应该使用静态初始化程序将数据传递到Fragment

class MyFragment extends Fragment {
    public static MyFragment newInstance(String[] array) {
        MyFragment fragment = new MyFragment();
        Bundle bundle = new Bundle();
        bundle.putStringArray("yourArray", array);
        fragment.setArguments(bundle);
        return fragment;
    }
}

以下是您应该如何通过Activity

来调用它
public class List extends ListActivity {
    ... onCreate(...) {
        String myStringArr[]=new String[5];

        MyFragment myFrag = MyFragment.newInstance(myStringArr);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getListView().getContext(), android.R.layout.simple_list_item_1, myStingArr);
        getListView().setAdapter(adapter);
    }
}

答案 1 :(得分:0)

除了其他答案,如果你想将数据从Fragment的“likeTitles”变量传递给构造函数方法上的Activity的myStringArr变量,你必须这样做:

   <ul>
  <li ng-show="user.cats.length > 0"  ng-repeat="user in users">{{ user.name }} - <span ng-repeat="userCat in user.cats" style="margin-right:10px;"><strong>[{{ userCat.id }}]</strong> {{ userCat.label }}</span></li>
</ul>

答案 2 :(得分:0)

使用静态String数组变量

创建一个类
public class storeData{        
    public static String stringArray[];
}

然后从anther类访问它以设置或获取

String likeTitles[] ={"mazda","whynot","OHYEAAAaa","ok","1983198312893"};

storeData.stringArray = likeTitles; // to set array

likeTitles = storeData.stringArray // to get array