Android Studio Ошибка "Не удается разрешить метод для метода .add" - PullRequest
0 голосов
/ 03 июня 2018

Я знаю, что этот вопрос часто задают, но я действительно озадачен, я посмотрел на другие методы и попробовал все ... Моя проблема с кодированием заключается в следующем, у меня есть открытый класс в Java, и я сделалстроковый массив в глобальной области видимости.Я попытался добавить к нему, используя array.add ("somestringhere"), но он выдает ошибку, говорящую (название) ... Еще одна вещь, на которую следует обратить внимание, это то, что этот класс находится внутри основного класса для файла.так что давайте посмотрим, смогу ли я показать это здесь:

public class see_schedule_activity extends AppCompatActivity {
.
..
.
.
.

// you can make this class as another java file so it will be separated from your main activity.
    public class AsyncTaskParseJson extends AsyncTask<String, String, String> {



        final String TAG = "AsyncTaskParseJson.java";
        // set your json string url here
        String yourJsonStringUrl = "http://www.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxphp";
        // contacts JSONArray
        JSONArray dataJsonArr = null;

        @Override
        protected void onPreExecute() {
        }

        @Override
        protected String doInBackground(String... arg0) {
            try {

                // I have a intent passed from teh main class
                Bundle extras = getIntent().getExtras();
                String[] tasks = extras.getStringArray("tasks");


                // instantiate our json parser
                JsonParser jParser = new JsonParser();

                // get json string from url
                JSONObject json = jParser.getJSONFromUrl(yourJsonStringUrl);

                // get the array of users
                dataJsonArr = json.getJSONArray("schedule");

                // loop through all users
                for (int i = 0; i < dataJsonArr.length(); i++) {

                    JSONObject c = dataJsonArr.getJSONObject(i);

                    // Storing each json item in variable

                    activityid = c.getString("activityid");

                    String yesno = c.getString("yesno");
                    String start = c.getString("start");
                    String stop = c.getString("stop");
                    String plusminus = c.getString("plusminus");


                    Log.e("Hash Map", "Routine ID #" + activityid);
                    if (!TextUtils.isEmpty(activityid) && TextUtils.isDigitsOnly(activityid)) {
                        routine = hm.get(Integer.valueOf(activityid));
                    } else {
                        routine = "";
                    }
                    // TODO: Make the PHP work with a variable residentID
                    //TODO: only make a string if the yes is checked
                    //TODO: make the routine name

//                    Log.e(TAG, "Value for yesno:" + yesno);

                    if (c.getString("yesno").equals("Yes")) {
                        schedule = routine + " starts at " + start + " and ends at " + stop + " with plusorminus " +
                                plusminus + " minutes ";
                        tasks.add(schedule);// This lines yeilds the problem
                        Log.e(TAG, "" + schedule);
                    }

//                    // show the values in our logcat
//                    Log.e(TAG, "activityid: " + activityid
//                            + ", yesno: " + yesno
//                            + ", start: " + start
//                            + ", stop: " + stop
//                            + ", plusminus: " + plusminus);


                }
                Intent intent = new Intent(getApplicationContext(),see_schedule_activity.class);
                intent.putExtra("tasks_filled",tasks);
                startActivity(intent);


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

            return null;
        }


        @Override
        protected void onPostExecute(String strFromDoInBg) {
        }
    }

Буду признателен за любую помощь, я новичок в программировании и Android Studio, и php .. так что да, спасибо заранее, Джастин

1 Ответ

0 голосов
/ 03 июня 2018

tasks - это массив строк, как вы определили

String[] tasks = extras.getStringArray("tasks");

И у массива нет метода add.Вам необходимо преобразовать tasks в список, подобный следующему

List<String> list = Arrays.asList(tasks);

Тогда вы можете использовать list.add(schedule)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...