android - 如何添加一个按钮来调用以编程方式给定的电话号码?

标签 android listactivity phone-call

我有一个应用程序,显示 friend 列表(每个 friend 都有全名和手机)。

我正在使用 android 开发人员指南的 listActiviti 示例的变体

有人可以完成我的代码或告诉我如何在每个列表项的右侧放置一个按钮的代码示例,当用户按下该按钮时,电话会调用该用户的电话号码。此外,现在,当用户按下列表项(而不是按钮)时,它会打开一个新 Activity 来显示 friend 的详细信息......此功能必须与按钮分开工作

这是我的 list_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>

这是我的 listActivity 代码:

public class AllActivity extends ListActivity {

RemoteConnection con; //conexion remota 
private List<Friend> friends; //lista de amigos
private List<String> usernames; //lista de usernames de amigos, para rellenar el listview
static SharedPreferences settings;
static SharedPreferences.Editor configEditor;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);        
    settings=PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
    configEditor = settings.edit();
    friends = new ArrayList<Friend>();
    usernames = new ArrayList<String>();
    con = new RemoteConnection();
    actualizar();

}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == 1) {
        setResult(1);
        finish();                   
    }
}
public void onResume() {
    super.onResume();       
   }   
    public void actualizar()
    {
        friends = MyApplication.getDatabaseAdapter().retrieveAllFriends();
        usernames.clear();


for (int i=0;i<friends.size();i++)
        {
            usernames.add(i,friends.get(i).getFullName());
        }
        setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, usernames));
        ListView lv = getListView();
        lv.setTextFilterEnabled(true);
        lv.setOnItemClickListener(new OnItemClickListener() {
          public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) {


              Bundle bundle = new Bundle(); //bundle is like the letter           
              bundle.putString ("user", friends.get(position).getFullName()); //arg1 is the keyword of the txt, arg2 is the txt
              bundle.putString ("email", friends.get(position).getEmail());
              bundle.putString ("permission", friends.get(position).getPermission());

              Intent i=null;
              if (friends.get(position).getPermission().equals("total"))
                  i = new Intent (AllActivity.this, Locate.class);
              else if (friends.get(position).getPermission().equals("perhours"))
                  i = new Intent (AllActivity.this, LocatePerHours.class);
              else
                  i = new Intent (AllActivity.this, LocatePerDays.class);

              i.putExtras(bundle);
              startActivity(i);
          }
        });
    }
}

最佳答案

要从按钮单击调用,您可以使用此 sol: How to make a phone call in android and come back to my activity when the call is done?


为了解决问题以恢复您的 Activity ,请尝试此解决方案:http://www.tutorialforandroid.com/2009/01/get-phone-state-when-someone-is-calling_22.html

关于android - 如何添加一个按钮来调用以编程方式给定的电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767183/

相关文章:

android - 向用户显示 Android 上的 ScrollView 中还有更多内容

java - 对 api < 24 使用 startwith 对 arraylist 进行排序

android - 从对象的arraylist填充listview

Android 布局 - 不显示 ImageView

android - eclipse 中图像的无效文件名错误

android - Android 中的 simple_list_item_2

android - 简单的ListActivity崩溃

android - 如何在android上发送假电话广播

使用 * 和 # 添加号码的 IOS 调用电话号码

c# - Windows Phone 7 通话记录 - Mango API