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。

另请参阅文档<代码>设置单击
也显示在那里。