Android 如何从片段内的listview打开链接Url?

Android 如何从片段内的listview打开链接Url?,android,listview,android-fragments,Android,Listview,Android Fragments,如果在片段中有一个listview,它有一个自定义布局、一个数组适配器、一个片段类和一个数组类。 如果我想在单击listview中包含的列表时打开一个链接,那么如何以及在何处放置代码 我已经尝试了下面的代码,我把它放在fragment类中,但是当我尝试单击可用列表时,我的应用程序强制关闭。我的代码错了吗 list_fish_easy.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override

如果在片段中有一个listview,它有一个自定义布局、一个数组适配器、一个片段类和一个数组类。 如果我想在单击listview中包含的列表时打开一个链接,那么如何以及在何处放置代码

我已经尝试了下面的代码,我把它放在fragment类中,但是当我尝试单击可用列表时,我的应用程序强制关闭。我的代码错了吗

list_fish_easy.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));
            startActivity(linkEasy);

        }
    });
我想要的是,我可以像下面这样打开arraylist中包含的链接

public class Fish extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
    final View view = inflater.inflate(R.layout.fish_layout, container, false);
    ListView list_fish_easy = (ListView) view.findViewById(R.id.list_fish_easy);
   
    final ArrayList<Animal> arrayListeasy= new ArrayList<>();
    arrayListeasy.add(new Animal("Contoh Nama 1", "Easy", "Ominvore", "7.5", "30 C", "http://images.google.com/images?um=1&hl=en&safe=active&nfpr=1&q=cabomba_aquatica"));
    arrayListeasy.add(new Animal("Contoh Nama 2", "Moderate", "Ominvore", "7.5", "30 C", "http://images.google.com/images?um=1&hl=en&safe=active&nfpr=1&q=cabomba_aquatica"));
    arrayListeasy.add(new Animal("Contoh Nama 3", "Difficult", "Ominvore", "7.5", "30 C", "http://images.google.com/images?um=1&hl=en&safe=active&nfpr=1&q=cabomba_aquatica"));

          final AnimalAdapter animalAdaptereasy = new AnimalAdapter(getContext(), R.layout.list_fish, arrayListeasy);
   
    list_fish_easy.setAdapter(animalAdaptereasy);
    
    list_fish_easy.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));

            if(linkEasy.resolveActivity(requireContext().getPackageManager()) != null) {
                startActivity(linkEasy);
            }

        }
    });

    return view;
}
}

我对创建Android程序非常陌生。请帮忙

android.content.ActivityNotFoundException:未找到可处理意图的活动

在开始的活动之前,您需要检查设备是否有一些组件可以处理此目的,这在您的情况下通常是浏览器,否则您将得到此异常

要做到这一点,你可以使用

android.content.ActivityNotFoundException:未找到可处理意图的活动

在开始的活动之前,您需要检查设备是否有一些组件可以处理此目的,这在您的情况下通常是浏览器,否则您将得到此异常

要做到这一点,你可以使用


您正在尝试从整个arraylist打开url

Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));

Uri.parse(String.valueOf(arrayListeasy)
您应该从arraylist获得带有url的确切字段 大概是

Uri.parse(String.valueOf(arrayListeasy.get(position).getYourUrlProperty());
全部代码

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy.get(position).getYourUrlProperty());

            if(linkEasy.resolveActivity(requireContext().getPackageManager()) != null) {
                startActivity(linkEasy);
            }

        }

此外,您还可以去掉String.valueOf logic

您正试图从整个arraylist打开url

Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));

Uri.parse(String.valueOf(arrayListeasy)
您应该从arraylist获得带有url的确切字段 大概是

Uri.parse(String.valueOf(arrayListeasy.get(position).getYourUrlProperty());
全部代码

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy.get(position).getYourUrlProperty());

            if(linkEasy.resolveActivity(requireContext().getPackageManager()) != null) {
                startActivity(linkEasy);
            }

        }

您还可以删除String.valueOf logic

您遇到了什么错误?@Jayanthvn我遇到了这个错误android.content.ActivityNotFoundException:找不到任何活动来处理您在这里遇到的意图String.valueOf Arraylistasy?@KamilJeglikowski我有这个列表,final ArrayList Arraylistasy=new ArrayList;arrayListeasy.addnew AnimalDiscus,Easy,食肉动物,7.5,30摄氏度,http://images.google.com/images?um=1&hl=en&safe=active&nfpr=1&q=discus;您遇到了什么错误?@Jayanthvn我遇到了这个错误android.content.ActivityNotFoundException:没有找到任何活动来处理您在这里的意图String.valueOfarrayListeasy?@KamilJeglikowski我有这个列表,final ArrayList arrayListeasy=new ArrayList;arrayListeasy.addnew AnimalDiscus,Easy,食肉动物,7.5,30摄氏度,http://images.google.com/images?um=1&hl=en&safe=active&nfpr=1&q=discus;谢谢你的回答,但是我的设备中有浏览器,我想问题出在这个代码Uri.parseString.ValueOfArraylistasy中,因为当我将值更改为url链接时,我可以打开链接,但我想要的是打开其中包含的urlarraylist@Azer89您能否提供您试图在Uri中传递的内容的示例值。parseyes,我已经更新了我的帖子,arraylist包含6个字符串,url链接在6号string@Azer89请核对答案。。他更快了:谢谢你的回答,但是我的设备中有浏览器,我想问题出在这个代码Uri.parseString.ValueOfArrayListasy中,因为当我将值更改为url链接时,我可以打开链接,但我想要的是打开包含在arraylist@Azer89你能提供一个你试图在Uri中传递什么的示例值吗?是的,我已经更新了我的帖子,arraylist包含6个字符串,url链接在6号string@Azer89请核对答案。。他跑得更快: