我正在尝试从扩展AsyncTask的类的onPostExecute函数中启动一个新的intent。该类与主活动类在同一个.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(Class,Uri)构造函数找到合适的构造函数Intent.Intent(String,Uri)不适用(参数不匹配; Class不能转换为String)构造函数Intent.Intent(Context,Class)不是适用(参数不匹配;类不能转换为上下文)
我在这里做错了什么?
答案 0 :(得分:0)
这是正确的方法:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(announcementsList.get(position).get("link")));
startActivity(i);