Я знаю, что этот вопрос задают много, но я искренне озадачен, я смотрел другие методы и пробовал все ... Моя проблема с кодированием заключается в следующем: у меня есть общедоступный класс в 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, а также в php .. так что да, заранее спасибо, Джастин




tasks - это массив строк, как вы определили
String[] tasks = extras.getStringArray("tasks");
А у Array нет метода add.
Вам нужно преобразовать tasks в список, подобный следующему
List<String> list = Arrays.asList(tasks);
Тогда вы можете использовать list.add(schedule)
Nevermind, вы не можете добавить в список, я должен сделать строку списка, а затем преобразовать ее в массив строк ty man!
Я не могу отметить ваш ответ как «6 минут», я сделаю это потом, спасибо, мд!
подождите, а что будет эквивалентом .add?