如何从片段内的列表视图打开 link Url?
How to open link Url from listview inside fragment?
如果我在一个片段中有一个列表视图,它有一个自定义布局、一个数组适配器、一个片段 class 和一个数组 class。
如果我想在单击列表视图中包含的列表时打开一个 link,我应该如何以及在哪里放置代码?
我已尝试将以下代码放入片段 class,但是当我尝试单击可用列表时,我的应用程序强制关闭。我的代码有错吗?
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中包含的link
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: No Activity found to handle Intent
在启动 Implicit intents 的活动之前,您需要检查设备是否具有可以处理此意图的某些组件(在您的情况下这通常是浏览器),否则您将得到此异常。
为此,您可以使用 intent.resolveActivity()
。
Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));
if(intent.resolveActivity(requireContext().getPackageManager()) != null) {
startActivity(linkEasy);
}
您正在尝试从整个数组列表
打开 url
Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));
Uri.parse(String.valueOf(arrayListeasy)
你应该从你的数组列表中得到 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
如果我在一个片段中有一个列表视图,它有一个自定义布局、一个数组适配器、一个片段 class 和一个数组 class。 如果我想在单击列表视图中包含的列表时打开一个 link,我应该如何以及在哪里放置代码?
我已尝试将以下代码放入片段 class,但是当我尝试单击可用列表时,我的应用程序强制关闭。我的代码有错吗?
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中包含的link
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: No Activity found to handle Intent
在启动 Implicit intents 的活动之前,您需要检查设备是否具有可以处理此意图的某些组件(在您的情况下这通常是浏览器),否则您将得到此异常。
为此,您可以使用 intent.resolveActivity()
。
Intent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));
if(intent.resolveActivity(requireContext().getPackageManager()) != null) {
startActivity(linkEasy);
}
您正在尝试从整个数组列表
打开 urlIntent linkEasy = new Intent(Intent.ACTION_VIEW, Uri.parse(String.valueOf(arrayListeasy)));
Uri.parse(String.valueOf(arrayListeasy)
你应该从你的数组列表中得到 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