0

由于我是 android 新手,我需要 stackoverflow 成员的帮助。在我的 android 项目中,我有一个公司名称的字符串数组,其中的联系电话列在相同的字符串数组 - 项目中。

我的列表视图与列表视图中的过滤器功能正常工作。我只希望用户可以从我的列表视图中直接拨打该号码。

<item >Citizen Company - 731429278838 </item>

我希望用户可以直接拨打给定的电话号码。

这是我的代码,请查看并通知我我的错误。

public class Taximain extends Activity {
// List view
private ListView lv;
// Listview Adapter
ArrayAdapter<String> adapter;
// Search EditText
EditText inputSearch;
// ArrayList for Listview
ArrayList<HashMap<String, String>> productList;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.taxi_main);
    // Listview Data
    String products[] = getResources().getStringArray(R.array.Taxi);
    lv = (ListView) findViewById(R.id.list_view);
    inputSearch = (EditText) findViewById(R.id.inputSearch);
    // Adding items to listview
    adapter = new ArrayAdapter<String>(this, R.layout.taxi_listitem, R.id.product_name, products);
    lv.setAdapter(adapter);   
    inputSearch.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
            // When user changed the Text
            Taximain.this.adapter.getFilter().filter(cs);
        }
        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {
            // TODO Auto-generated method stub

        }
        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
        }
    });

}

}

4

3 回答 3

1

您正在寻找的特殊Intent是ACTION_DIAL

我假设您可以很容易地获得电话号码,所以这是您想要使用它的方式:

String tel = // Get phone number;

Intent intent = new Intent(Intent.ACTION_DIAL);                          
intent.setData(Uri.parse(String.format("tel:%s", tel)));
startActivity(intent);
于 2013-03-07T19:02:36.050 回答
1

首先,您必须制作公司及其号码的数组。

使用公司和号码制作自定义列表视图。

现在您可以使用setOnItemClickListener和拨打电话了。

lv.setOnItemClickListener(new OnItemClickListener()
{
        public void onItemClick(AdapterView<?> arg0, View v, int position, long id){
            Intent callintent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + phone_arr[position]));
            startActivity(callintent);                    
        }
 });

您可以使用列表视图并进行一些修改。

更新:

strint [] phone_arr ={1234567890,9999999999,....}

始终与您的产品尺寸相同。

于 2013-03-15T06:18:53.793 回答
0

通过使用意图“ACTION_CALL”将启用来自列表视图项目的点击的电话。

String callString="tel:"+phone_arr[position];
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(callString));  
startActivity(intent);
于 2013-03-09T11:46:28.260 回答