こんにちは、バックグラウンドで XML ファイルからデータを解析し、その String 配列データを ListView に表示する ASyncTask を作成しようとしています。これまでのところ何が間違っているのか、または文字列配列の値を GUI に戻す方法を理解していません。他に何か必要な場合は、私に知らせてください。詳細を確認するための提案や場所を探して提供していただきありがとうございます。
package com.lvlup.kikurself.scotttest;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import java.io.IOException;
import org.xml.sax.SAXException;
//import com.lvlup.kikurself.scotttest.WikiParser.Cm;
public class scottPlayers extends ListActivity {
public class PlayerGet extends AsyncTask<Void, Void, Void>{
@Override
protected void onPostExecute(Void result){
WikiParser p = new WikiParser();
ArrayList<String> titles = new ArrayList<String>();
try {
p.parseInto(new URL("http://scottlandminecraft.wikia.com/api.php?action=query&list=categorymembers&cmtitle=Category:Players&cmlimit=500&format=xml"), titles);
} catch (MalformedURLException e) {
} catch (IOException e) {
} catch (SAXException e) {}
//String[] values = new String[50];
//values = res;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(scottPlayers.this, R.layout.main, titles);
setListAdapter(adapter);
//final ListView playersList = getListView();
/*playersList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long thisID)
{
Object o = (playersList.getItemAtPosition(position));
String playerName_temp = (o.toString());
Intent newIntent = new Intent(v.getContext(), playerDisp.class);
newIntent.putExtra("tempN", playerName_temp);
startActivity(newIntent);
}
});*/
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
Toast.makeText(scottPlayers.this,
"onPreExecute \n: preload bitmap in AsyncTask",
Toast.LENGTH_LONG).show();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
return null;
}
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
new PlayerGet().execute();
}
//get your data back again with: String fName = getIntent().getExtras().getInt("fname");
}
編集:他の例を見て新しいコードを追加しましたが、これは私が思いついたものですが、エミュレーターでこれを実行すると、Main.xml の背景が表示されるだけで、リストにデータが入力されず、これをインポートするとICS を実行している私の電話では、エラーが発生して強制的に閉じられたと表示されます...何らかの理由でエミュレータでこれを発生させることができず、エミュレータの LogCat にエラーはありませんでした。