【发布时间】:2014-11-11 08:30:51
【问题描述】:
所以,我的程序运行良好。我只剩下三个警告(每个弹出窗口一个),这让我很烦恼,我一直在寻找适合我需要的解决方案,但似乎找不到。
这是我的代码(其他两个弹出窗口类似)
else if(id == R.id.action_resetstats){
LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.resetpop, null);
final PopupWindow popupWindow = new PopupWindow(popupView,LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
Button yesDismiss = (Button)popupView.findViewById(R.id.yesDismiss);
yesDismiss.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v){
SharedPreferences prefs = getSharedPreferences(savedData, Context.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.clear();
editor.commit();
counterW = 0;
counterL = 0;
counterT = 0;
counterTot = 0;
timerTime = 3;
popupWindow.dismiss();
}
});
popupWindow.showAsDropDown(yeDismiss, 50, 50);
Button noDismiss = (Button)popupView.findViewById(R.id.noDismiss);
noDismiss.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v){
popupWindow.dismiss();
}
});
popupWindow.showAsDropDown(naDismiss, 50, 50);
xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_margin="5dp"
android:background="@android:color/black"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="230dp"
android:layout_height="300dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_margin="2dp"
android:background="@android:color/darker_gray"
android:orientation="vertical" >
<Button
android:id="@+id/noDismiss"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="NO!" />
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" Reset stats?"
android:textSize="22sp" />
</RelativeLayout>
<Button
android:id="@+id/yesDismiss"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Yes" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/relativeLayout1"
android:layout_centerHorizontal="true"
android:layout_marginTop="34dp"
android:text="Are you sure you want " />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:text="to reset your statistics?" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true"
android:layout_marginTop="39dp"
android:text="!CANNOT BE UNDONE!" />
</RelativeLayout>
</RelativeLayout>
问题是在这里解决问题:
View popupView = layoutInflater.inflate(R.layout.resetpop, null);
警告说:
Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)
任何想法如何以最好的方式解决这个问题?提前致谢!
【问题讨论】:
-
忘记添加警告。现在应该编辑。
-
我明白了。您通常应该提供父布局,以便复制其布局约束。在你的情况下,我认为你可以简单地忽略警告
-
啊,很高兴知道我至少可以忽略它。我对任何类型的编程都很陌生,所以任何知识都非常有帮助。
标签: android android-layout null popupwindow layout-inflater