Я сделал это, в котором перечислены некоторые ссылки с веб-страницы, но я не хочу, чтобы показать ссылку только стрелки, как на этом изображении screenshot Это мой код:сделать работу изображения в качестве ссылки в андроида
public class Controller extends AppCompatActivity {
private String TAG = Controller.class.getSimpleName();
private ProgressDialog pDialog;
private ListView lv;
private static String url;
private static final String TITLE = "title";
private static final String LINK = "link";
ArrayList<HashMap<String, String>> linkList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_view);
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
linkList = new ArrayList<>();
url = this.getString(R.string.url);
lv = (ListView) findViewById(R.id.list);
new GetLinks().execute();
}
private class GetLinks extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(Controller.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
Document doc = null;
Elements links;
try {
doc = Jsoup.connect(url).get();
links = doc.getElementsByClass("processlink");
linkList = ParseHTML(links);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
ListAdapter adapter = new SimpleAdapter(
Controller.this, linkList,
R.layout.list_item, new String[]{TITLE, LINK}, new int[]{R.id.title});
lv.setAdapter(adapter);
}
}
private ArrayList<HashMap<String, String>> ParseHTML(Elements links) throws IOException {
if (links != null) {
ArrayList<HashMap<String, String>> linkList = new ArrayList<>();
for (Element link : links) {
final String linkhref = this.getString(R.string.http) + link.select("a").attr("href");
String linktext = link.text();
HashMap<String, String> student = new HashMap<>();
student.put(TITLE, linktext);
student.put(LINK, linkhref);
linkList.add(student);
}
return linkList;
}
else {
Log.e(TAG, "Couldn't get html from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get html from server. Check LogCat for possible errors!",
Toast.LENGTH_LONG)
.show();
}
});
}
return null;
}
}
и вот мой ListView
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:paddingTop="6dip"
android:textColor="@color/colorPrimaryDark"
android:textSize="16sp"
android:textStyle="bold"
android:text="Title"/>
<ImageView
android:id="@+id/link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:src="@drawable/ic_action_name"
android:autoLink="web"
/>
Если ImageView изменяется на TextView он будет показывать ссылку и она работает, но я не хочу, чтобы увидеть ссылку только стрелку в правой части экрана но я не уверен, как заставить работать.
Поместите событие щелчка по всей элемент списка, а не только изображение. –