0

新しいスレッドでトーストを表示しようとしています。私はそれを調査しましたが、どうやら UI スレッドでトーストを実行する必要があるようです。Android はメイン スレッドで HTTPclient を実行することを望んでいないため、この新しいスレッドが必要です。私はハンドラーを扱うことができますが、私の問題は、私がいるクラスに MainActivity コンテキストを取得する方法を理解できないことです。それは SherlockFragment を拡張し、コンストラクターはおそらくそれをオーバーライドすることを許可しません。

これは現時点で私の実行可能なものです

new Thread(new Runnable() {
    @Override
    public void run() {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("https://www.example.com/API/events/add.php");

        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(16);
            httppost.getParams().setParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, Boolean.FALSE);

            // Adding data
            nameValuePairs.add(new BasicNameValuePair("token", "admin"));
            nameValuePairs.add(new BasicNameValuePair("eventTitle", title));
            nameValuePairs.add(new BasicNameValuePair("categories", Integer.toString(catId)));

            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);

            String status = EntityUtils.toString(response.getEntity());
            JSONObject jObj = null;

            try {
                jObj = new JSONObject(status);
            } catch (JSONException e) {
                Log.e(MainActivity.class.getName(), "Error Parsing Data: " + e.toString());
            }

            try {
                //Want to toast this string here, jObj.getString("status"))
            } catch (JSONException e) {
                Log.e(MainActivity.class.getName(), "Error Reading Status String: " + e.toString());
            }

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
    }
}).start();

私ができることとして何か推奨事項はありますか?

4

2 に答える 2

1

この質問を参照してください..

Contextアプリケーションの任意の部分が静的にアクセスできるようにする方法を示します。

[ Android で「コンテキスト」を取得する静的な方法は? ]

API に組み込まれていないのはなぜですか? 私たちは決して知りません..

HTH

于 2013-03-31T01:18:07.193 に答える
0

フラグメント アクティビティの場合、将来、 Fragment.this.getActivity() を実行して Activity インスタンスとコンテキストを取得できることを知っておく必要があります。これは、必要な他のアクティビティのみのメソッドに役立ちます。

于 2013-03-31T09:37:09.503 に答える