Java listview中的可单击项目-Android Studio
我在我的应用程序中创建了一个列表视图,列表中的每个项目都对应于某个位置。我想成为可点击的项目,当用户点击地点的名称时,就会出现一个地图位置。我该怎么做?如何使列表中的项目可单击并转到不同的链接 这是我的活动:Java listview中的可单击项目-Android Studio,java,android,xml,Java,Android,Xml,我在我的应用程序中创建了一个列表视图,列表中的每个项目都对应于某个位置。我想成为可点击的项目,当用户点击地点的名称时,就会出现一个地图位置。我该怎么做?如何使列表中的项目可单击并转到不同的链接 这是我的活动: public class Guia extends BaseActivity { String[] predios={"HVET - Hospital Veterinário", "FE - Faculdade de Educação", "BSA SUL - Bloco de
public class Guia extends BaseActivity {
String[] predios={"HVET - Hospital Veterinário", "FE - Faculdade de Educação", "BSA SUL - Bloco de Salas de Aula Sul", "BAES - Bloco de Salas de Aula Eudoro de Sousa",
"FACE - Faculdade de Administração, Contabilidade e Economia", "FD - Faculdade de Direito", "PAT - Pavilhão Anísio Teixeira",
"PJC - Pavilhão João Calmon", "IPOL/IREL - Instituto de Ciências Políticas/Relações Internacionais", "CIC/EST - Prédio de Ciência da Computação e Estatística",
"RU - Restaurante Universitário", "IDA - Instituto de Artes", "ICC - Instituto Central de Ciência",
"CDT - Centro de Tecnologia", "CPD - Centro de Informática", "FM/FS - Faculdade de Medicina/Saúde", "CEU - Casa do Estudante", "Centro Olímpico"};
ListView s;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guia);
s = (ListView) findViewById(R.id.predios);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.predios, R.id.textosiglas, predios);
s.setAdapter(adapter);
}
}
public类Guia扩展了BaseActivity{
字符串[]predios={“HVET-退伍军人医院”、“FE-教育学院”、“BSA-南奥拉萨拉斯酒店”、“BAES-南奥拉尤多罗萨拉斯酒店”,
“面部——行政管理面、经济可控制面”、“FD——行政管理面”、“帕特——帕维勒·奥安西奥·泰西拉”,
“PJC-Pavilhão João Calmon”、“IPOL/IREL-Instituto de Cièncias Políticas/Relaèes Internacionais”、“CIC/EST-Prédio de Ci ncias da Computaèe Estaística”,
“RU-大学餐厅”、“IDA-艺术学院”、“ICC-中央学院”,
“CDT-技术中心”、“CPD-信息中心”、“FM/FS-医疗中心/萨乌德”、“CEU-埃斯图丹特之家”、“奥林匹克中心”;
列表视图;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.guia);
s=(ListView)findViewById(R.id.predios);
ArrayAdapter=新的ArrayAdapter(this,R.layout.predios,R.id.textosiglas,predios);
s、 设置适配器(适配器);
}
}
这是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EBEBEB"
>
<ListView
android:background="@android:color/white"
android:layout_margin="10dp"
android:id="@+id/predios"
android:dividerHeight="10dp"
android:divider="#EBEBEB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
/>
</RelativeLayout>
这是我的xml适配器:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_margin="10dp"
android:background="@android:color/white"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imagemguia"
android:layout_width="40dp"
android:layout_height="40dp"
app:srcCompat="@drawable/guia"
android:layout_margin="10dp"
android:layout_gravity="center_horizontal|top"
/>
<TextView
android:id="@+id/textosiglas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text=""
android:textColor="@android:color/black"
android:textSize="17sp" />
</LinearLayout>
您应该使用名为
OnItemClickListener
的接口,因此更改您的活动
以实现该接口:
public class Guia extends BaseActivity implements AdapterView.OnItemClickListener{
String[] predios={"HVET - Hospital Veterinário", "FE - Faculdade de Educação", "BSA SUL - Bloco de Salas de Aula Sul", "BAES - Bloco de Salas de Aula Eudoro de Sousa",
"FACE - Faculdade de Administração, Contabilidade e Economia", "FD - Faculdade de Direito", "PAT - Pavilhão Anísio Teixeira",
"PJC - Pavilhão João Calmon", "IPOL/IREL - Instituto de Ciências Políticas/Relações Internacionais", "CIC/EST - Prédio de Ciência da Computação e Estatística",
"RU - Restaurante Universitário", "IDA - Instituto de Artes", "ICC - Instituto Central de Ciência",
"CDT - Centro de Tecnologia", "CPD - Centro de Informática", "FM/FS - Faculdade de Medicina/Saúde", "CEU - Casa do Estudante", "Centro Olímpico"};
ListView s;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guia);
s = (ListView) findViewById(R.id.predios);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.predios, R.id.textosiglas, predios);
s.setAdapter(adapter);
//This is class that implements the interface.
s.setOnItemClickListener(this);
}
//This method is implemented using the interface
@Override
public void onItemClick (AdapterView<?> parent, View view, int position,long id){
//Trate o click de cada item aqui dentro usando a variavel position
}
}
公共类GUI扩展BaseActivity实现AdapterView.OnItemClickListener{
字符串[]predios={“HVET-退伍军人医院”、“FE-教育学院”、“BSA-南奥拉萨拉斯酒店”、“BAES-南奥拉尤多罗萨拉斯酒店”,
“面部——行政管理面、经济可控制面”、“FD——行政管理面”、“帕特——帕维勒·奥安西奥·泰西拉”,
“PJC-Pavilhão João Calmon”、“IPOL/IREL-Instituto de Cièncias Políticas/Relaèes Internacionais”、“CIC/EST-Prédio de Ci ncias da Computaèe Estaística”,
“RU-大学餐厅”、“IDA-艺术学院”、“ICC-中央学院”,
“CDT-技术中心”、“CPD-信息中心”、“FM/FS-医疗中心/萨乌德”、“CEU-埃斯图丹特之家”、“奥林匹克中心”;
列表视图;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.guia);
s=(ListView)findViewById(R.id.predios);
ArrayAdapter=新的ArrayAdapter(this,R.layout.predios,R.id.textosiglas,predios);
s、 设置适配器(适配器);
//这是实现接口的类。
s、 SetonicClickListener(本);
}
//此方法是使用接口实现的
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//点击不同位置的地籍项目
}
}
路易斯的答案是正确的。但您并不特别需要实现该功能。您可以创建一个新实例:
myListView.setOnItemClickListener(new OnItemClickListener(){
@Override
Public void onItemClick(AdapterView<?> p1, View p2, int i, long p4)
{
// Your stuff here
}
});
myListView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图p1、视图p2、内部i、长p4)
{
//你的东西在这里
}
});
其中p1是listView,p2是单击的视图(用于查找文本并在其中更改),p3是listView中的位置,p4是唯一id。另请参阅文档<代码>设置单击
也显示在那里。