Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将其他类的列表项放入数组,然后在textview中设置文本_Java_Android - Fatal编程技术网

Java 如何将其他类的列表项放入数组,然后在textview中设置文本

Java 如何将其他类的列表项放入数组,然后在textview中设置文本,java,android,Java,Android,如何将MainActivity java类中mylistofquestion(第2行)的值放入slideadapter java类中的字符串titleqw(第7行) 所以我可以将它从slideadapter java文件中的数组(buttom的第7行)传递到TextView到settext 主要活动: public class MainActivity extends AppCompatActivity { public List<String> mylistofquesti

如何将MainActivity java类中mylistofquestion(第2行)的值放入slideadapter java类中的字符串titleqw(第7行)

所以我可以将它从slideadapter java文件中的数组(buttom的第7行)传递到TextView到settext

主要活动:

public class MainActivity extends AppCompatActivity {
    public List<String> mylistofquestion = new ArrayList<>();
    public List<String> mylistofanswer = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        slideadapter slideadapter = new slideadapter(this);
        viewPager.setAdapter(slideadapter);


        myjsonrequest();


    }

    //requesting for data
    public void myjsonrequest() {
        //url to make request
        String Url = "https://learncodeonline.in/api/android/datastructure.json";

        JsonObjectRequest myjsonObjectRequest = new JsonObjectRequest(Request.Method.GET, Url, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.i("response", "is " + response);

                        try {

                            JSONArray jsonArrayofmine = response.getJSONArray("questions");


                            Log.i("jsonarray", "is " + jsonArrayofmine);


                            for (int i = 0; i < jsonArrayofmine.length(); i++) {
                                //taking quesstion and answer
                                JSONObject jsonObjectinarray = jsonArrayofmine.getJSONObject(i);

                                String question = jsonObjectinarray.getString("question");
                                String answer = jsonObjectinarray.getString("Answer");

                                mylistofquestion.add(i, question);
                                mylistofanswer.add(i, answer);


                            }
                            Log.i("mylistofquestion", "is " + mylistofquestion);
                            Log.i("mylistofanswer", "is " + mylistofanswer);


                            for (int i1 = 0; i1 < mylistofquestion.size(); i1++) {

                                Log.i("Value of element " + i1, mylistofquestion.get(i1));

                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }


                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                //show snackbar
            }
        }

        );
        MySingleton.getInstance(getApplicationContext()).addToRequestque(myjsonObjectRequest);


    }
}

在上面这一行中,我想得到txttitle中的arraylist项,您可以尝试将slideadapter放置在Mainactivity.class中,它实际上应该是“slideadapter”。我想你还需要和其他人一起工作。

第1步:从主活动中删除这两行

  slideadapter slideadapter = new slideadapter(this);
  viewPager.setAdapter(slideadapter);
步骤2:在方法myjsonrequest(如下所示)中的for循环之后粘贴这两行,并进行一些修改

   slideadapter slideadapter = new slideadapter(this,mylistofquestion,mylistofanswer);
   viewPager.setAdapter(slideadapter);
步骤3:在slideadapter中将构造函数更改为

public slideadapter(Context context, List<String> mylistofquestion, List<String> mylistofanswer) {
    this.context = context;
    this.mylistofquestion = mylistofquestion;
    this.mylistofanswer = mylistofanswer;
}
下面是一个新的

txttitle.setText(mylistofquestion.get(position));

错误:在步骤3java.lang.IndexOutOfBoundsException中找不到符号变量mylistofquestion异常:索引:0,大小:0位于java.util.ArrayList.get(ArrayList.java:437),位于kvadityaaz.forhitesh.com.datastructurepreparation.slideadapter.InstanceItem(slideadapter.java:122),位于android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1004)在slidedapter中上下文之后;添加这两行->列出mylistofquestion;列出mylistofanswer;
txttitle.setText(titleqw[position]);
txttitle.setText(mylistofquestion.get(position));