Android setContentView和侦听器
在某个时候,我正在更改活动的内容视图。(至视图2)。 将其更改回View1后,侦听器不再工作。 我已经尝试将侦听器放入onResume()方法中 使用setContentView()显示进度屏幕/请稍候等(在异步任务运行时)是否常见。 或者每个活动应该只有一个主视图?(并动态替换内容) //编辑:更具体地说: 我在找像这样的东西Android setContentView和侦听器,android,android-layout,Android,Android Layout,在某个时候,我正在更改活动的内容视图。(至视图2)。 将其更改回View1后,侦听器不再工作。 我已经尝试将侦听器放入onResume()方法中 使用setContentView()显示进度屏幕/请稍候等(在异步任务运行时)是否常见。 或者每个活动应该只有一个主视图?(并动态替换内容) //编辑:更具体地说: 我在找像这样的东西 LinearLayout item = (LinearLayout) findViewById(R.id.mainView); View child = getLayo
LinearLayout item = (LinearLayout) findViewById(R.id.mainView);
View child = getLayoutInflater().inflate(R.layout.progress, null);
item.addView(child);
但是,它不应该添加“progress.xml”,而应该删除当前布局,只显示“progress.xml”。
我是否需要一个“容器”并显示/隐藏主视图/进度?
但这对我来说似乎不太合适
另请参见下面的代码(已剥离)
每个活动只能有一个UI,您应该创建另一个活动,并在其onCreate方法中设置内容视图 步骤:
c:假设您使用“findViewById”初始化“button”,每次设置ContentView(R.layout.view1)时都需要这样做 谢谢大家的回复。您让我意识到,当我删除或替换(使用setContentView())主视图时,onClickListeners正在丢失。我现在就这样结束了: 一旦创建:
setContentView(R.layout.parse);
LinearLayout container = (LinearLayout) findViewById(R.id.container);
container.addView(getLayoutInflater().inflate(R.layout.dialog, null));
container.addView(getLayoutInflater().inflate(R.layout.progress, null));
开始做某事:
findViewById(R.id.dialog).setVisibility(View.INVISIBLE);
findViewById(R.id.progress).setVisibility(View.VISIBLE);
onEndDoingSomehting:
findViewById(R.id.dialog).setVisibility(View.VISIBLE);
findViewById(R.id.progress).setVisibility(View.INVISIBLE);
我可能会改变View.INVISIBLE to View.GONE,就像nmr所说的,但因为我从未使用View.GONE,所以我必须先检查Android doku;) 如何创建“按钮”?你需要展示更多的代码。我认为你的方法在某些情况下是可以的(例如,view1是加载或启动屏幕,view2是内容。处理此问题的一种方法是将view1和view2的内容放入嵌套在FrameLayout下的同一布局文件中,并根据需要使用View#setVisibility()将其可见性从View.GONE切换到View.VISIBLE)。好吧,但不止一个UI在工作…但在onCreate方法中只调用一次setContentView似乎是一件常见的事情,仅此而已。我不能进行两个活动,在这里没有意义。更改活动不是一件很麻烦的事,但如果您想要的只是一个进度对话框,您可以创建一个进度对话框,有一个look此处为参考developer.android.com/reference/android/app/ProgressDialog.htmlThe this is the Activity_XY是三个选项卡之一。它在按下按钮后启动异步任务,该按钮调用Activity_XY的进度处理程序方法,并向其提供一些信息(文本).谢谢,你说得对,这是我应该称之为“听众绑定器”的要点…但这不太合适。。。
findViewById(R.id.dialog).setVisibility(View.VISIBLE);
findViewById(R.id.progress).setVisibility(View.INVISIBLE);