2017-07-13 7 views
0

私はAsyncTaskを拡張するクラスのonPostExecute関数から新しいインテントを起動しようとしています。このクラスは、メインのアクティビティクラスを持つ同じ.javaファイルに書き込まれ、そのメインアクティビティクラスのonCreate関数で実行されます。スレッドから新しいインテントを始めるには?

public class AnnouncementsActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // ... 
     new GetAnnouncements().execute(); 
     // ... 
    } 

private class GetAnnouncements extends AsyncTask<Void, Void, Void> { 
    ArrayList<HashMap<String, String>> announcementsList = null; 
    ProgressDialog progressDialog; 

    protected void onPostExecute(Void requestResult) { 
     super.onPostExecute(requestResult); 
     // ... 
     announcementsListView.setAdapter(adapter); 
     announcementsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent openInBrowserIntent = new Intent(AnnouncementsActivity.class, Uri.parse(announcementsList.get(position).get("link"))); 
      } 
     }); 
     // ... 
    } 
} 
} 

私が手にエラーがある:

エラー:テントが見つかりもし適切なコンストラクタ(クラス、ウリ)コンストラクタIntent.Intent(文字列、ウリ)が適用されないん(引数の不一致、クラスを変換することができませんコンストラクタIntent.Intent(Context、Class)は適用できません(引数が一致しません;クラスをコンテキストに変換できません)

ここで何が間違っていますか?

答えて

0

これが正しいやり方です:

Intent i = new Intent(Intent.ACTION_VIEW); 
    i.setData(Uri.parse(announcementsList.get(position).get("link"))); 
    startActivity(i); 
関連する問題