use*_*667 1 android android-orientation android-alertdialog
我必须开发一个Android应用程序.
我创建了一个警告对话框.如果我必须旋转方向意味着警报对话框消失.
但是我想在方向改变时显示警告对话框.
@Override
public void onConfigurationChanged ( Configuration newConfig )
{
super.onConfigurationChanged(newConfig);
try
{
MainActivity.editCalled = true;
Intent in = new Intent(AndroidListFragmentActivity.this, AndroidListFragmentActivity.class);
startActivity(in);
finish();
}
catch (Exception e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我使用了两个片段......
在第二个片段中有一个警告对话框:
ImageView share = (ImageView) findViewById(R.id.imageView5);
share.setOnClickListener(new OnClickListener()
{
public void onClick ( View v )
{
final CharSequence[] items =
{
"Facebook", "Twitter", "Email"
};
AlertDialog.Builder builder = new AlertDialog.Builder(SubCate.this);
builder.setTitle("Share Via:");
builder.setItems(items, new DialogInterface.OnClickListener()
{
public void onClick ( DialogInterface dialog , int item )
{
if (items[item] == "Facebook")
{
onFacebookClick();
}
if(items[item] == "Twitter"){
onClickTwitt();
}
if (items[item] == "Email")
{
Intent email = new Intent(Intent.ACTION_SEND);
email.setType("message/rfc822");
email.putExtra(Intent.EXTRA_EMAIL, new String[]
{
""
});
email.putExtra(Intent.EXTRA_SUBJECT, _Substring);
email.putExtra(Intent.EXTRA_TEXT, ContentEmail);
startActivity(Intent.createChooser(email, "Choose an Email client :"));
}
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}
Here only i have facing above problem..please give me solution for these ???
Run Code Online (Sandbox Code Playgroud)
设置android:configChanges="orientation"是不鼓励的Android系统.您可以先Alertdialog在片段中声明,然后使用onSavedInstanceState:
AlertDialog alert;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.yourid, container, false);
if(savedInstanceState != null && savedInstanceState.getBoolean("alertShown",true)) {
showDialog(view.getContext());
}
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if(alert != null && alert.isShowing()) {
// close dialog to prevent leaked window
alert.dismiss();
outState.putBoolean("alertShown", true);
}
}
// put all creating dialog stuff in a single method
protected void showDialog(final Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
...
alert = builder.create();
alert.show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2529 次 |
| 最近记录: |