这里的所有其他问题都与ACTION_CALL或ACTION_DIAL或这些主题有关。我明白了。我需要一个意图。但是,如何实现自定义拨号器?我已经搜索了很多,但找不到与该主题有关的任何内容。我已经全部设计好了,随时可以使用,但是对于如何将它们组合在一起没有任何要求。
我认为这就像向layout / activity_main.java添加一些元素和样式一样简单,但事实并非如此。到目前为止,简单的测试仅使应用程序在加载时崩溃。喜欢:
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/title_two"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="phone"
android:maxLength="11" >
<requestFocus />
</EditText>
<Button
android:id="@+id/one"
android:text="1" />
<Button
android:id="@+id/two"
android:text="2" />
<Button
android:id="@+id/three"
android:text="3" />
<Button
android:id="@+id/four"
android:text="4" />
<Button
android:id="@+id/five"
android:text="5" />
<Button
android:id="@+id/six"
android:text="6" />
<Button
android:id="@+id/seven"
android:text="7" />
<Button
android:id="@+id/eight"
android:text="8" />
<Button
android:id="@+id/nine"
android:text="9" />
<Button
android:id="@+id/star"
android:text="*" />
<Button
android:id="@+id/zero"
android:text="0" />
<Button
android:id="@+id/pound"
android:text="#" />
<Button
android:id="@+id/callButton"
android:text="Call" />
<Button
android:id="@+id/contacts"
android:text="Con" />
<Button
android:id="@+id/del"
android:text="Del" />
我确信这只是我遇到的一个简单问题,但是我什至无法添加任何按钮而不会崩溃。然后在src / MainActivity.java中:
public class MainActivity extends Activity {
Button dialBtn;
EditText numTxt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dialBtn = (Button) findViewById(R.id.button1);
numTxt = (EditText) findViewById(R.id.editText1);
dialBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
if (numTxt != null && (numTxt.getText().length()==10 ||numTxt.getText().length()==11)) {
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel: 8880000000" + numTxt.getText())));
}else if(numTxt != null && numTxt.getText().length()==0){
Toast.makeText(getApplicationContext(), "You must enter a number to call", Toast.LENGTH_SHORT).show();
}else if(numTxt != null && numTxt.getText().length()<10){
Toast.makeText(getApplicationContext(), "Please check your number and try again", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Log.e("DialerActivity", "error: " + e.getMessage(), e);
}
}
});
}
}
这里的唯一目标是向用户显示拨号程序。他们输入他们的号码,就可以像在普通的拨号器上一样在屏幕上看到它,然后它调用该服务的硬编码访问号码,然后在eventListener更改为应答时传入他们的拨号号码。
我承认我是新手,所以有几个明显的错误,我知道,我太新了,看不到它们。我认为这将是您使用Android可以做的最简单的事情之一,因为那里有一百万个客户拨号程序。我并不想做任何花哨的事情,您必须使用该应用程序才能使用该服务,即它不是在与BroadcastReceiver一起在后台徘徊,试图拦截您的去电并查看您是否要使用该服务。只是一个简单的拨号程序。我要去哪里错了?某些代码是直接从书籍,在线教程中复制而来,只是试图使其正常工作,但直接复制并粘贴却无法正常工作?
最佳答案
如果那是您布局的实际内容,则存在几个问题。
必须是.xml文件。
必须具有根元素(即,您必须以特殊的布局(线性,相对等)布局按钮。这是开始的地方:http://developer.android.com/guide/topics/ui/declaring-layout.html
布局xml中的每个元素都必须具有两个属性:android:layout_width和android:layout_height
您必须将View.OnClickListener附加到每个按钮。
您将必须以特定方式布置按钮。例如,使用3个线性布局来容纳3行数字按钮,这些按钮包含在主布局中。
看来您才刚刚开始,所以我建议您在线看看一些基本示例,以构建一个简单的android应用程序。
关于java - 编程和实现自定义拨号器UI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12079890/