无法在android中使用intent
我正在使用coustomlist视图获取默认数据,但无法在customlistview中设置操作调用意图,我正在使用fallowing代码。每次单击视图时,我都希望number变量存储当前视图的电话号码并启动操作调用意图无法在android中使用intent,android,Android,我正在使用coustomlist视图获取默认数据,但无法在customlistview中设置操作调用意图,我正在使用fallowing代码。每次单击视图时,我都希望number变量存储当前视图的电话号码并启动操作调用意图 public class DataModel { private String phonenumber; private int anInt; private double aDouble; private String OtherData;
public class DataModel {
private String phonenumber;
private int anInt;
private double aDouble;
private String OtherData;
public DataModel(String phonenumber, int anInt, double aDouble, String otherData) {
this.phonenumber = phonenumber;
this.anInt = anInt;
this.aDouble = aDouble;
OtherData = otherData;
}
public String getphonenumber() {
return phonenumber;
}
public void setphonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public int getAnInt() {
return anInt;
}
public void setAnInt(int anInt) {
this.anInt = anInt;
}
public double getaDouble() {
return aDouble;
}
public void setaDouble(double aDouble) {
this.aDouble = aDouble;
}
public String getOtherData() {
return OtherData;
}
public void setOtherData(String otherData) {
OtherData = otherData;
}
}
导入android.content.Context;
导入android.content.Intent;
导入android.net.Uri;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.Button;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.util.ArrayList;
/**
*使用IntelliJ IDEA创建。
*用户:沙哈布
*日期:2012年8月22日
*时间:上午11:37
*要更改此模板,请使用文件|设置|文件模板。
*/
公共类CustomAdapter扩展了BaseAdapter{
私有静态最终字符串标记=CustomAdapter.class.getSimpleName;
ArrayList列表数组;
公共自定义适配器{
listArray=新的ArrayList5;
listArray.addnew DataModel7760576191,5,1.8,Java;
listArray.addnew DataModel7760576191,10,2.8,Python;
listArray.addnew DataModel7760576191,15,3.8,Django;
listArray.addnew DataModel7760576191,20,4.8,Groovy;
listArray.addnewdatamodel7760576191,25,5.8,Maven;
}
@凌驾
公共整数getCount{
return listArray.size;//列表中的元素总数
}
@凌驾
公共对象getItemint i{
return listary.geti;//列表中的单个项
}
@凌驾
公共长条{
返回i;//索引号
}
@凌驾
公共视图getViewint索引、视图视图、最终视图组父视图{
如果视图==null{
LayoutFlater充气器=LayoutFlater.fromparent.getContext;
视图=充气机。充气机。布局。单个列表项目,父项,false;
}
最终数据模型DataModel=listArray.getindex;
TextView TextView=TextView view.findviewbydr.id.tv\u string\u数据;
textView.setTextdataModel.getphonenumber;
Button Button=Button view.findViewByIdR.id.btn\u number\u数据;
button.setText+dataModel.getanit;
textView=textView view.findviewbydr.id.tv\u double\u数据;
textView.setText+dataModel.getaDouble;
//按钮单击侦听器
//如果用户单击按钮,这段代码将运行
//因为,我们只在按钮上设置单击侦听器
button.SetOnClickListener新建视图.OnClickListener{
@凌驾
公共void onclick视图{
Log.dTAG,字符串:+dataModel.getphonenumber;
Log.dTAG,int:+dataModel.getanit;
Log.dTAG,双:+dataModel.getaDouble;
Log.dTAG,otherData:+dataModel.getOtherData;
Toast.makeTextparent.getContext,点击按钮:+dataModel.getAnit,Toast.LENGTH\u SHORT.show;
}
};
//如果您注释掉了上面的代码块
//激活这段代码
//然后,如果用户单击列表视图中除按钮之外的任何视图
//这段代码将被执行
//因为我们在整个视图上设置了click侦听器
view.SetOnClickListener新建view.OnClickListener{
@凌驾
公共void onclick视图{
Log.dTAG,字符串:+dataModel.getphonenumber;
Log.dTAG,int:+dataModel.getanit;
Log.dTAG,双:+dataModel.getaDouble;
Log.dTAG,otherData:+dataModel.getOtherData;
字符串编号=dataModel.getphonenumber.toString;
Intent callIntent=新intentint.ACTION\u调用;
callIntent.setDataUri.parsetel:+number;
startactivitycalintent;
Toast.makeTextparent.getContext,单击视图:+dataModel.getOtherData,Toast.LENGTH\u SHORT.show;
}
};
返回视图;
}
}
导入android.app.Activity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入android.widget.Toast;
公共类MainActivity扩展了活动{
私有静态最终字符串标记=MainActivity.class.getSimpleName;
/**
*在首次创建活动时调用。
*/
@凌驾
public void onCreateBundle savedInstanceState{
super.onCreatesavedInstanceState;
setContentViewR.layout.activity_main;
ListView ListView=ListView findViewByIdR.id.list\u数据;
CustomAdapter CustomAdapter=新的CustomAdapter;
listView.setAdaptercustomAdapter;
//我们在列表视图中添加了一个按钮
//因此,单击项目时的列表视图无法获取事件
//我们需要在cust中实现click listener
om适配器
//如果不在列表视图中添加按钮,此方法将起作用
//listView.SetOnItemClickListener新建AdapterView.OnItemClickListener{
//@覆盖
//public void nomine mclick adapterView adapterView、视图视图、int i、long l{
//
//DataModel DataModel=DataModel adapterView.getItemAtPositioni;
//
//Log.dTAG,字符串:+dataModel.getName;
//Log.dTAG,int:+dataModel.getanit;
//Log.dTAG,双:+dataModel.getaDouble;
//Log.dTAG,otherData:+dataModel.getOtherData;
//
//Toast.makeTextMyActivity.this,单击的项:+i,Toast.LENGTH\u SHORT.show;
// }
// };
}
} 要从baseadpater启动活动,必须执行以下操作:
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+number));
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(callIntent );
先生,我尝试了你的代码,但我有一个问题,我在我的列表视图中提到了deafult的电话号码,当用户单击一个视图时,我想从textview获取该电话号码,并使用Action_call Intentive调用该号码,我在没有BaseAdapters的情况下尝试过这个方法,效果很好,但是我一直在使用BaseAdapters,您正在使用日志打印数据模型信息。所以它是否给出输出意味着是否给出了电话号码。?是的,先生,它给出了输出,但同时我需要将phonemuber表单textview保存在数字变量中,并使用它调用操作\调用意图调用用户。为此,您可以使用textview.getText.toString