adminpage.java代わり
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_page);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mTextView = (TextView) findViewById(R.id.dataList);
Button button = (Button) findViewById(R.id.rf);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// new JSONTask().execute("https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt");
new JSONTask().execute("https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoList.txt");
}
});
}
public static class JSONTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
String finalJson = buffer.toString();
JSONObject parentObject = new JSONObject(finalJson);
JSONArray parentArray = parentObject.getJSONArray("movies");
StringBuffer finalBufferedData = new StringBuffer();
for (int i = 0; i < parentArray.length(); i++) {
JSONObject finalObject = parentArray.getJSONObject(i);
String movieName = finalObject.getString("movie");
int year = finalObject.getInt("year");
finalBufferedData.append(movieName + " - " + year + "\n");
}
//JSONObject finalObject = parentArray.getJSONObject(0);
return finalBufferedData.toString();
//return buffer.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
mTextView.setText(result);
}
}
だから私は結論付けることができます何この上のベースがあります。
1)JSONTASKはURLを受け取り、別の文字列に分割してリンクし、finalBufferedData.toString()を返します。
2)onPostExecuteは結果を受け取り、mTextViewに設定します。
3)onclicklistenerは関数を実行し、手順2を実行して表示します。
質問!
私は
onPostExecute(String result)
<関数を呼び出すコードのどこに表示されない - 結果は何ですか?それは返品ですか?finalBufferedData.toString()
?別のアクティビティで同じ機能を実行していますが、
onClicklistener
を実行しないでTextView
に表示するにはどうすればよいですか。
@SRBbansのおかげ。 2番目の部分は私が例を持つことができます。彼らは異なる活動から来ているからです。私が行った現在の方法はあまり適切ではなかった、私は別の活動にコードの同じ塊をコピーし、そこから呼び出す...それはまだ理想的ではない – Chris
おじさん.. 2番目の活動でコードを書く際に何か問題が.. ? –
そのコードの重複は正しいですか?それは悪い書面ではありません – Chris