Articles of android activity

Android-以不同的意图值回到以前的活动

我有一个有这个转换的应用程序: A -> B -> C -> D-> C 进入C ,我必须检查一个标志。 那么我必须把它作为意向(让我们说intentX = false )传给D 在D做了一些事情之后,按下一个button之后它会回到C 我所做的只是再次传递intentX的值true,然后再startActivity C。 那么会发生什么呢是它创造了另一个活动C. 我想要发生的是,我将不必启动一个新的活动C,但通过调用super.onBackPressed()使用以前的C. 但是我无法通过intentX的新价值。 有没有其他的办法,来实现我想要的。 我可能会错过一些。

在ActionBarActivity中从/等同于getActivity()

就像我的标题所说,我在我的Android project ActionBarActivity类中寻找相当于getActivity() 。 我想在AsyncTask声明对象中传递一个Activity参数,因为我在我的自定义AsyncTask扩展类中使用了一个Activity对象 这里是我的项目最简单的代码示例 public class EventCreator extends ActionBarActivity { private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_even_creator); View v = getLayoutInflater().inflate(R.layout.activity_even_creator,null); this.context = this.getBaseContext(); final Button createButton = (Button)findViewById(R.id.createEventButton); createButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AsyncTask<Void,Void,Boolean> eventCreatorSend = new SendEvents(/* here need activity object */); eventCreatorSend.execute(); […]

如何清除以前的活动堆栈和退出应用程序后退button?

朋友们, 我有三个活动 A,B,C A是主屏幕。 活动按照A-> B-> C启动 如果我来到主屏幕使用后退我想清除活动堆栈/以前的活动历史,它应该退出应用程序。 任何一个指导我如何实现这一目标?

处理方向更改与运行AsyncTask

用例: 用户启动将加载validation码的应用程序。 用户填写validation码并尝试下载一些信息。 问题: 如果用户在下载的时候旋转设备,则Activity被破坏。 在执行结束时,AsyncTask试图更新被销毁的Activity , 结果是“View not attached to window manager”。 “错”解决scheme: 我可以用android:configChanges="orientation|keyboardHidden|screenSize"来掩盖这个问题,但是这个布局不会被更新为横向。 我在问什么: 是否有可能改变方向,并改变传递给AsyncTask的上下文的“引用”? 这个答案build议检查对话框是否不为空,但这不是我正在寻找的。 在这里,他build议使用一个WeakReference( 这里是一个很好的代码片段,如何使用它),但我不明白,如果这是我正在寻找。 为了更明确这是我在onPostExecute中做的事情: @Override protected void onPostExecute(Auto result) { progress.dismiss(); new DownloaderCaptcha(context).execute(""); ((EditText)context.findViewById(R.id.editTextCaptcha)).setText(""); context.findViewById(R.id.progrBar).setVisibility(View.VISIBLE); context.findViewById(R.id.captcha).setVisibility(View.INVISIBLE); if(result != null) { Storage.storeHistory(context, result.getTarga().getValue()); Intent i = new Intent(context, MenuActivity.class); i.putExtra("result", result); context.startActivity(i); } else { ErrorDialog.show(context, error); } }

如何在后台启动一个活动并在之后显示?

我有两个活动,一个是SplashActivity ,另一个是MainActivity ,一个包含webview的活动。 显示启animation面时我需要加载webview。 所以我正在寻找一种方法来在后台加载MainActivity在SplashActivity::onCreate() ; 如果intend被直接调用,MainActivity立即被带到前面,以及卡在web视图中。 我查找了很多这样的启animation面的解决scheme。 但是,在飞溅时间到期之前,它们不会初始化MainActivity。

刷新活动,而不重新打开它?

我在我的应用程序中实现了一个button,用以下代码清除所有的sharedpreferences: context.getSharedPreferences("bifrostPrefs", 0).edit().clear().commit(); 现在问题是,每当我使用button,我需要退出活动,并重新打开它看到的结果。 我试着解决这个问题,只需按下这个代码重新打开活动: Intent reOpen = new Intent (Bifrost.this, Bifrost.class); startActivity(reOpen); 我的想法似乎很聪明,直到我注意到,如果我重新打开活动,然后我需要按两次后退button返回到主要活动。 所以我做了一些研究,发现这个代码: finish(); startActivity(getIntent()); 这现在工作正常,活动刷新,然后我只需要点击后退button一次。 但是,如果没有“闪”出来,还有另一种更新活动的方式吗? 如你所知,每次你开一个新的活动,它会闪烁,所以应用程序滞后一秒。 有没有办法绕过这个刷新一个活动?

如何设置onPrepareDialog中setSingleChoiceItems的内容?

伙计们,在onCreateDialog我有这样的: case DIALOG_REVIEW: { if (bundle.containsKey("POSITION")) { final int position = bundle.getInt("POSITION"); ArrayList<String> alterNumbers = numbers.get(position); final String[] phoneNums = new String[alterNumbers.size()]; for (int i = 0; i < alterNumbers.size(); i++) { phoneNums[i] = alterNumbers.get(i); } AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle(names.get(position) + "'s number(s)"); dialog.setSingleChoiceItems(phoneNums, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, […]

多个活动,相同的onCreateOptionsMenu,onOptionsItemSelected和onKeyDown。 我可以以某种方式重用代码?

多个活动具有相同的onCreateOptionsMenu,onOptionsItemSelected和onKeyDown。 当我实施变更时,我必须在每个活动(工作时间*活动计数)中进行。 有没有一种方法来重用代码(例如在一个地方写下所有的三个方法,并在每个活动中放下对它的引用)?

我必须在Android Manifest中指定父级活动名称吗?

我有一个活动,开始另一个活动。 我在Android Manifest中指定父级活动是强制性的吗? 我问这是因为可能还有其他的活动也会启动这个,所以我应该指定所有这些? android:parentActivityName="com.example.myfirstapp.MainActivity"

Android NestedScrollViewalignment顶部的内容

我发现CoordinatorLayout中的NestedSCrollView中的内容总是在底部alignment,如果它不填满整个屏幕。 我该如何解决这个问题? 我的代码: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:card_view="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="140dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:fitsSystemWindows="true"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="48dp" app:expandedTitleMarginEnd="64dp"> <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_anchorGravity="top|start" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="24dp" android:orientation="vertical"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" card_view:cardBackgroundColor="@color/white" card_view:cardElevation="2sp" card_view:cardUseCompatPadding="true"> </android.support.v7.widget.CardView> <ListView android:layout_height="match_parent" android:layout_width="match_parent" […]