这是我的对话java文件,它正在制造麻烦。我的其他对话文件非常相似,工作得很好。问题是当另一个进度对话框完成时调用此对话框。另一个关闭,但这个新的不会打开(但代码运行),我不明白为什么。
public class Response extends Dialog implements OnClickListener {
Button cpandclose;
EditText response;
Context context;
//Skapar dialog med About xml filen
public Response(Context context, String url) {
super(context);
/** 'Window.FEATURE_NO_TITLE' - Used to hide the title */
requestWindowFeature(Window.FEATURE_NO_TITLE);
/** Design the dialog in main.xml file */
setContentView(R.layout.response);
cpandclose = (Button) findViewById(R.id.cpandclose);
cpandclose.setOnClickListener(this);
response = (EditText) findViewById(R.id.resposeurl);
response.setText("http://xxx.com/i/" + url);
this.context = context;
Log.d("Response Window: ", "running..");
}
public void onClick(View v) {
if (v == cpandclose) {
ClipboardManager ClipMan = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipMan.setText(response.getText());
dismiss();
}
}
}
不显示的对话框的xml-file
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/responsetxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Response:"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/resposeurl"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<requestFocus />
</EditText>
<Button
android:id="@+id/cpandclose"
android:layout_width="225dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="Copy and Close" />
</LinearLayout>
app功能通过在后台上传一些数据并在完成后将应用返回的数据应用于字符串:
camera.responseFromServer(serverResponse);
调用当前相机对象中的方法responseFromServer,并且它调用的函数如下:
public void responseFromServer(String url) {
Looper.prepare();
Response response = new Response(this, url);
Log.d("response: ", url);
response.show();
}
这会运行程序,但我看不到任何对话框出现。怎么可能?这可能是一个简单的解决方案,但感觉就像我已经尝试了一切!
感谢您的建议和更好的智慧。
答案 0 :(得分:3)
因为不应在responseFromServer()
中创建对话框,而是在onCreateDialog()
。