Java 如何从线程开始新的意图?
我试图从扩展AsyncTask的类的onPostExecute函数启动一个新的意图。该类与主活动类写在同一个.java文件中,并在该主活动类的onCreate函数中执行Java 如何从线程开始新的意图?,java,android,listview,android-intent,Java,Android,Listview,Android Intent,我试图从扩展AsyncTask的类的onPostExecute函数启动一个新的意图。该类与主活动类写在同一个.java文件中,并在该主活动类的onCreate函数中执行 public class AnnouncementsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { // ... new Get
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")));
}
});
// ...
}
}
}
public class AnnouncementsActivity扩展了appcompativity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
// ...
新建GetAnnouncements().execute();
// ...
}
私有类GetTask{
ArrayList announcementsList=null;
进行对话进行对话;
受保护的void onPostExecute(void requestResult){
super.onPostExecute(requestResult);
// ...
announcementsListView.setAdapter(适配器);
announcementsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Intent openinbrowserint=newintent(AnnouncementsActivity.class,Uri.parse(announcementsList.get(position.get(“link”));
}
});
// ...
}
}
}
我得到的错误是:
错误:找不到适合Intent(类,Uri)构造函数意图的构造函数。Intent(字符串,Uri)不适用(参数不匹配;类无法转换为字符串)构造函数意图。Intent(上下文,类)不适用(参数不匹配;类无法转换为上下文)
我做错了什么?这是正确的方法:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(announcementsList.get(position).get("link")));
startActivity(i);