Android 在对话框中设置类
可以在Android中的对话框中打开类吗 例如:Android 在对话框中设置类,android,android-layout,Android,Android Layout,可以在Android中的对话框中打开类吗 例如: Dialog settingsDialog = new Dialog(this); settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); settingsDialog.setContentView(getLayoutInflater(). inflate(R.lay
Dialog settingsDialog = new Dialog(this);
settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
settingsDialog.setContentView(getLayoutInflater().
inflate(R.layout.image_pager, null));
settingsDialog.show();
正在打开一个图像。如何在加载类而不是xml布局时执行相同的操作
其他信息:这是我的ImagePager课程
public class ImagePopUp extends BaseActivity implements OnClickListener {
private ViewPager pager;
Button boutton_retour;
public static String img;
private DisplayImageOptions options;
String url,image,title;
ArrayList<Post> PostDetails = new ArrayList<Post>();
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main_diaporama_pager);
showViewHolderExtra();
}
private class ImagePagerAdapter extends PagerAdapter {
private String[] images;
private LayoutInflater inflater;
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
ImagePagerAdapter(String[] images) {
this.images = images;
inflater = getLayoutInflater();
}
@Override
public void finishUpdate(View container) {
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object instantiateItem(View view, int position) {
Dialog settingsDialog = new Dialog(ImagePopUp.this);
settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.image_layout, null));
settingsDialog.show();
final View imageLayout = inflater.inflate(R.layout.item_pager_image, null);
final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.im_pager);
final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loadinprogress);
imageLoader.displayImage(images[position], imageView, options, new ImageLoadingListener() {
public void onLoadingStarted() {
spinner.setVisibility(View.VISIBLE);
}
public void onLoadingFailed(FailReason failReason) {
String message = null;
switch (failReason) {
case IO_ERROR:
message = "Input/Output error";
break;
case OUT_OF_MEMORY:
message = "Out Of Memory error";
break;
case UNKNOWN:
message = "Unknown error";
break;
}
Toast.makeText(ImagePopUp.this, message, Toast.LENGTH_SHORT).show();
spinner.setVisibility(View.GONE);
imageView.setImageResource(android.R.drawable.ic_delete);
}
public void onLoadingComplete(Bitmap loadedImage) {
spinner.setVisibility(View.GONE);
Animation anim = AnimationUtils.loadAnimation(ImagePopUp.this, R.anim.fade_in);
imageView.setAnimation(anim);
anim.start();
}
public void onLoadingCancelled() {
// Do nothing
}
});
((ViewPager) view).addView(imageLayout, 0);
return imageLayout;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View container) {
}
}
public void showViewHolderExtra(){
String[] seperated = img.split(";");
Bundle bundle = getIntent().getExtras();
int pagerPosition = bundle.getInt("POSITION", 0);
System.out.println("image: "+ pagerPosition);
pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new ImagePagerAdapter(seperated));
pager.setCurrentItem(pagerPosition);
options = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.ic_launcher)
.cacheOnDisc()
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.build();
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.boutton_retour:
finish();
break;
}
}
}
公共类ImagePopUp扩展BaseActivity实现OnClickListener{
私人寻呼机;
纽扣花束;
公共静态字符串img;
私有显示图像选项;
字符串url、图像、标题;
ArrayList PostDetails=新建ArrayList();
创建时的公共void(Bundle savedInstanceState){
requestWindowFeature(窗口。功能\u无\u标题);
super.onCreate(savedInstanceState);
setContentView(R.layout.main_diporama_pager);
showViewHolderExtra();
}
私有类ImagePagerAdapter扩展了PagerAdapter{
私有字符串[]图像;
私人充气机;
@凌驾
公共项(视图容器、int位置、对象){
((ViewPager)容器)。移除视图((视图)对象);
}
ImagePagerAdapter(字符串[]图像){
这个。图像=图像;
充气机=充气机();
}
@凌驾
公共void finishUpdate(视图容器){
}
@凌驾
public int getCount(){
返回图像长度;
}
@凌驾
公共对象实例化项(视图,int位置){
对话框设置Dialog=新建对话框(ImagePopUp.this);
设置Dialog.getWindow().requestFeature(Window.FEATURE\u NO\u TITLE);
settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.image_layout,null));
设置Dialog.show();
最终视图图像布局=充气机。充气(R.layout.item\u pager\u图像,空);
final ImageView ImageView=(ImageView)imageLayout.findViewById(R.id.im_pager);
最终ProgressBar微调器=(ProgressBar)imageLayout.findViewById(R.id.loadinprogress);
displayImage(图像[位置]、图像视图、选项、新图像加载侦听器(){
public void onLoadingStarted(){
spinner.setVisibility(View.VISIBLE);
}
public void onload失败(失败原因失败原因){
字符串消息=null;
开关(故障原因){
案例IO_错误:
message=“输入/输出错误”;
打破
大小写输出\u\u内存:
message=“内存不足错误”;
打破
案件未知:
message=“未知错误”;
打破
}
Toast.makeText(ImagePopUp.this,message,Toast.LENGTH_SHORT).show();
spinner.setVisibility(View.GONE);
setImageResource(android.R.drawable.ic_delete);
}
公共void onLoadingComplete(位图加载图像){
spinner.setVisibility(View.GONE);
动画动画=AnimationUtils.loadAnimation(ImagePopUp.this,R.anim.fade_in);
设置动画(动画);
anim.start();
}
public void onload取消(){
//无所事事
}
});
((ViewPager)视图).addView(imageLayout,0);
返回图像布局;
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回视图.equals(对象);
}
@凌驾
公共无效恢复状态(可包裹状态,类装入器){
}
@凌驾
公共包裹存储状态(){
返回null;
}
@凌驾
公共无效启动日期(查看容器){
}
}
公开作废showViewHolderExtra(){
字符串[]separated=img.split(“;”);
Bundle Bundle=getIntent().getExtras();
int pagerPosition=bundle.getInt(“位置”,0);
System.out.println(“图像:+pagerPosition”);
pager=(ViewPager)findViewById(R.id.pager);
寻呼机设置适配器(新图像寻呼机(单独));
pager.setCurrentItem(页面位置);
选项=新建DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.ic_发射器)
.cacheOnDisc()
.imageScaleType(imageScaleType.IN\u示例\u INT)
.build();
}
公共void onClick(视图v){
//TODO自动生成的方法存根
开关(v.getId()){
案例R.id.boutton_retour:
完成();
打破
}
}
}
我希望在单击时将其显示在对话框中。您希望在对话框中加载整个活动。有两种方法。如果活动只是一个ViewPager,您可以将对话框的内容设置为该ViewPager:
Dialog settingsDialog = new Dialog(this);
settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
ViewPager mViewPager = new ViewPager(this);
ImagePagerAdapter adapter = new ImagePagerAdapter(images);
mViewPager.setAdapter(adapter);
settingsDialog.setContentView(mViewPager);
settingsDialog.show();
您甚至可以像平常一样加载整个活动,但只是让它看起来像一个对话框,带有对话框主题或其他
如果您知道
.setContentView
可以获取资源id或视图,那么使用什么方法应该是显而易见的。这就像是onCreate
最简单的方法就是在AndroidManifest中设置:
<activity
android:name=".ImagePopUp"
android:theme="@android:style/Theme.Dialog" >
</activity>
然后,像往常一样打开该类,单击:
Intent intent = new Intent(YourActualClass.this, ImagePopUp.class);
startActivity(intent);
可以通过在布局xml中使用自定义视图来实现这一点
settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.image_pager, null));
layout/imagepaper.xml
<com.your.package.CustomLinearLayout
xmlns: ...
android:layout_width="" ... etc
/>
另一种方法是使用“ 如图所示: 您的类扩展了DialogFragment:
public class OneOptionDialogFragment<T> extends DialogFragment {
// do stuff
}
public类OneOptionDialogFragment扩展了DialogFragment{
//做事
}
和显示对话框(取自上述url):
OneOptionDialogFra
public class CustomLinearLayout extends LinearLayout {
// Overridden constructors
// onFinishInflate() etc
}
public class OneOptionDialogFragment<T> extends DialogFragment {
// do stuff
}
OneOptionDialogFragment<UserDetails> dialogFragment = OneOptionDialogFragment.newInstance(title, message, buttonText);
dialogFragment.show(getSupportFragmentManager(), "DeleteFragTag");