我有一个有按钮的片段。单击按钮后,将执行以下代码:
@Override
public void onClick(View clickedView) {
switch(clickedView.getId()) {
case R.id.btnTest:
FragmentManager fm = getSherlockActivity().getSupportFragmentManager();
MyDialog dialog = new MyDialog();
dialog.show(fm, "TaskDeadlineDialog");
break;
}
}
我的对话片段如下:
public class MyDialog extends DialogFragment
{
public MyDialog() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedBundleInstance) {
View currentView = inflater.inflate(R.layout.my_dialog_layout, parent);
System.out.println("Inflated!");
return currentView;
}
}
发生的情况是,对话框未显示且应用停止响应。我正在使用CM9 ICS在三星SII上进行测试。
编辑:Logcat也没有显示任何内容。
12-21 16:05:16.970: I/System.out(15753): debugger has settled (1304)
12-21 16:05:18.250: D/dalvikvm(15753): VFY: replacing opcode 0x6f at 0x0006
12-21 16:05:18.445: I/System.out(15753): Got ID: 1
12-21 16:05:20.430: I/System.out(15753): List position: 0
12-21 16:05:23.225: I/System.out(15753): Inflated!
12-21 16:05:38.510: D/dalvikvm(15753): GC_CONCURRENT freed 2265K, 41% free 4867K/8131K, paused 3ms+6ms
12-21 16:05:51.895: D/dalvikvm(15753): GC_CONCURRENT freed 1797K, 42% free 4787K/8131K, paused 2ms+2ms
..etc
我做错了什么?
答案 0 :(得分:2)
我能想到的是,由于某种原因,你可能会阻止ui线程。我想如果你使用同步操作或线程,这是一个很常见的错误。
再看一下您的代码,然后按照步骤进行操作。 Logcat也应该输出超时调度,等待应用再次开始响应的时间越长。
编辑;这个答案可能会对您有所帮助:https://stackoverflow.com/a/5047865/559157
答案 1 :(得分:0)
看起来像我在对话框中膨胀的以下小部件导致了问题: https://github.com/SimonVT/android-calendarview
我将确保在项目问题页面上向开发人员报告此事。