Android 带有单击调用的ListView按钮

Android 带有单击调用的ListView按钮,android,listview,android-button,Android,Listview,Android Button,我有一个按钮列表视图,我想让每个按钮调用不同的号码。实际上,这个列表是一个医生列表,我需要给每个按钮分配一个手机号码。可能吗?如果可能的话,我怎么做 下面是正在工作的DoctorsActivity.java文件 public class DoctorsActivity extends AppCompatActivity { private JSONArray arrayAdapter; private static final String URL_FOR_BALAN

我有一个按钮列表视图,我想让每个按钮调用不同的号码。实际上,这个列表是一个医生列表,我需要给每个按钮分配一个手机号码。可能吗?如果可能的话,我怎么做

下面是正在工作的DoctorsActivity.java文件

    public class DoctorsActivity  extends AppCompatActivity {

    private JSONArray arrayAdapter;
    private static final String URL_FOR_BALANCE = "http://192.168.1.28/api2/doctors.php";

    String cancel_req_tag = "login";

    private ListView lv;
    ArrayList<HashMap<String, String>> contactList;
    Bitmap icon = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_doctors);

        getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        getSupportActionBar().setCustomView(R.layout.toolbar_doctors);

        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#003764")));
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);

        SharedPreferences sharedPreferences = getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
        final String pid = sharedPreferences.getString(Config.UID_SHARED_PREF, null);

        contactList = new ArrayList<>();
        lv = (ListView) findViewById(R.id.list);

        StringRequest strReq = new StringRequest(Request.Method.POST,
                URL_FOR_BALANCE, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {

                try {
                    JSONObject jObj = new JSONObject(response);
                    boolean error = jObj.getBoolean("error");

                    if (!error) {

                        JSONArray contacts = jObj.getJSONArray("user");


                        for (int i = 0; i < contacts.length(); i++) {
                            JSONObject c = contacts.getJSONObject(i);

                            String doctorTitle = c.getString("title");
                            String doctorName = c.getString("first_name");
                            String doctorSurname = c.getString("last_name");
                            String doctorPhoto = c.getString("photo"); //image URL
                            String doctorMobile = c.getString("mobile");

                            String doctorFullName = doctorTitle+" "+doctorName+" "+doctorSurname;

                            // tmp hash map for single contact
                            HashMap<String, String> contact = new HashMap<>();

                            // adding each child node to HashMap key => value
                            contact.put("photo", doctorPhoto);
                            contact.put("doctor", doctorFullName);
                            contact.put("mobile", doctorMobile);

                            // adding contact to contact list
                            contactList.add(contact);
                        }

                        ListAdapter adapter = new SimpleAdapter(
                                DoctorsActivity.this, contactList,
                                R.layout.activity_doctors_list_item, new String[]{"photo", "doctor",
                                "mobile"}, new int[]{R.id.photo,
                                R.id.doctor, R.id.mobile});

                        lv.setAdapter(adapter);



                    } else {

                        String errorMsg = jObj.getString("error_msg");
                        Toast.makeText(getApplicationContext(),
                                errorMsg, Toast.LENGTH_LONG).show();
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(),
                        error.getMessage(), Toast.LENGTH_LONG).show();
            }
        }) {

            @Override
            protected Map<String, String> getParams() {
                // Posting params to login url
                Map<String, String> params = new HashMap<String, String>();
                params.put("uid", pid);
                params.put("lang", Locale.getDefault().getDisplayLanguage());
                return params;
            }
        };
        // Adding request to request queue
        AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(strReq,cancel_req_tag);
    }
}
公共类DoctorsActivity扩展了AppCompatActivity{
私人JSONArray ArrayaAdapter;
_余额的私有静态最终字符串URL_=”http://192.168.1.28/api2/doctors.php";
字符串cancel_req_tag=“login”;
私有ListView lv;
ArrayList联系人列表;
位图图标=空;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_医生);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY\u SHOW\u CUSTOM);
getSupportActionBar().setCustomView(R.layout.toolbar_);
getSupportActionBar().setBackgroundDrawable(新的ColorDrawable(Color.parseColor(“#003764”));
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
SharedReferences SharedReferences=GetSharedReferences(Config.SHARED\u PREF\u NAME,Context.MODE\u PRIVATE);
最终字符串pid=SharedReferences.getString(Config.UID\u SHARED\u PREF,null);
contactList=新的ArrayList();
lv=(ListView)findViewById(R.id.list);
StringRequest strReq=新的StringRequest(Request.Method.POST,
URL\u用于\u余额,新响应。侦听器(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jObj=新的JSONObject(响应);
布尔错误=jObj.getBoolean(“错误”);
如果(!错误){
JSONArray contacts=jObj.getJSONArray(“用户”);
对于(int i=0;ivalue
联系方式。放置(“照片”,博士照片);
联系人。输入(“医生”,医生全名);
联系人:put(“mobile”,doctorMobile);
//将联系人添加到联系人列表
联系人列表。添加(联系人);
}
ListAdapter=新的SimpleAdapter(
DoctorActivity.this,联系人列表,
R.layout.activity_doctors_list_项,新字符串[]{“photo”,“doctor”,
“mobile”},新int[]{R.id.photo,
R.id.doctor,R.id.mobile});
低压设置适配器(适配器);
}否则{
String errorMsg=jObj.getString(“error_msg”);
Toast.makeText(getApplicationContext(),
errorMsg,Toast.LENGTH_LONG).show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(getApplicationContext(),
error.getMessage(),Toast.LENGTH_LONG).show();
}
}) {
@凌驾
受保护的映射getParams(){
//将参数发布到登录url
Map params=新的HashMap();
参数put(“uid”,pid);
params.put(“lang”,Locale.getDefault().getDisplayLanguage());
返回参数;
}
};
//将请求添加到请求队列
AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(streq,cancel_req_标记);
}
}

您可以通过创建自定义适配器来实现此功能

您可以通过创建自定义适配器来实现此功能

您可以从“仅创建自定义适配器”获取参考

您可以从“仅创建自定义适配器”获取参考,请参见示例。只需更改方法。

有关示例,请参阅。只要改变方法