0

私は Android と Java プログラミングにまったく慣れていないので、本当に助けが必要です。Web サイトから .txt ファイルを読み込み、各行を配列リストに入れ、文字列をリストの要素として表示するアプリを作成しようとしました。配列に必要な数の文字列があるかどうかを知るために sysout を追加しましたが、常にゼロです。この問題を解決する方法は複数ありましたが、静的フィールドと非静的フィールドの間のエラーのために機能していません。この問題の解き方が分からないので、どなたか教えていただけないでしょうか。

主な活動

public class MainActivity extends Activity {

ListView listview;
String response_str;
String output_str;
ArrayList<String> releases = new ArrayList<String>();



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ABGXThread thread = new ABGXThread();
    thread.start();



    listview = (ListView)findViewById(R.id.listView1);
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, releases);
    listview.setAdapter(arrayAdapter); 

    System.out.println("Anzahl Releases: "+releases.size());
}

public void getReleases(String release) {

    releases.add(release);

}


}

ABGXスレッド

public class ABGXThread extends Thread{


String response_str;
String output_str;
String[] parts;

public void run() {

    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet("URL-OF-TXT-HERE");

    ResponseHandler<String> responseHandler = new BasicResponseHandler();

    try {
        response_str = client.execute(request, responseHandler);
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    String cut = "nuked)";
    output_str = response_str.substring(response_str.indexOf(cut)+cut.length(), response_str.length());

    parts = output_str.split("\n");




    System.out.println(parts[6260]);
    System.out.println(parts.length);               


}

public String getRels(int counter) {
    return parts[counter];
}


}
4

1 に答える 1

0

コードにの呼び出しがgetReleases()ありません。そのため、配列リストにアイテムが追加されていません。

MainActivity クラスの外部から行うには:

MainActivity mainActivity = new MainActivity();
mainActivity.getReleases("Foo");

または、MainActivity 内から呼び出している場合:

getReleases("Foo");
于 2013-09-04T19:13:00.703 に答える