小编Ale*_*ood的帖子

Android getResources().getDrawable()已弃用API 22

新的Android API 22 getResources().getDrawable()现已弃用.现在最好的方法是只使用getDrawable().

改变了什么?

android android-resources android-drawable android-5.1.1-lollipop

672
推荐指数
7
解决办法
35万
查看次数

当进度对话框和后台线程激活时,如何处理屏幕方向更改?

我的程序在后台线程中执行一些网络活动.在开始之前,它会弹出一个进度对话框.该对话框在处理程序上被关闭.这一切都很好,除非在对话框启动时屏幕方向发生变化(后台线程正在运行).此时,应用程序崩溃或死锁,或进入一个奇怪的阶段,在应用程序完全无法工作之前,直到所有线程都被杀死.

如何优雅地处理屏幕方向变化?

下面的示例代码大致匹配我的真实程序:

public class MyAct extends Activity implements Runnable {
    public ProgressDialog mProgress;

    // UI has a button that when pressed calls send

    public void send() {
         mProgress = ProgressDialog.show(this, "Please wait", 
                      "Please wait", 
                      true, true);
        Thread thread = new Thread(this);
        thread.start();
    }

    public void run() {
        Thread.sleep(10000);
        Message msg = new Message();
        mHandler.sendMessage(msg);
    }

    private final Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            mProgress.dismiss();
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

堆:

E/WindowManager(  244): Activity MyAct has …
Run Code Online (Sandbox Code Playgroud)

android android-dialog android-activity

515
推荐指数
9
解决办法
23万
查看次数

如何使用DrawerLayout在ActionBar /工具栏上和状态栏下显示?

我在新的材料设计Side Nav规范中看到,您可以在操作栏上和状态栏后面显示抽屉.我该如何实现呢?

android android-appcompat navigation-drawer

391
推荐指数
5
解决办法
21万
查看次数

理解Fragment的setRetainInstance(boolean)

从文档开始:

public void setRetainInstance(boolean retain)

控制是否在活动重新创建(例如从配置更改)中保留片段实例.这只能用于不在后栈中的片段.如果设置,则在重新创建活动时,片段生命周期会略有不同:

  • onDestroy()不会被调用(但是onDetach()仍然会被调用,因为片段正在与其当前活动分离.
  • 因为片段没有被重新创建,所以不会调用onCreate(Bundle).
  • onAttach(Activity)和onActivityCreated(Bundle)仍将被调用.

我有一些问题:

  • 片段是否也保留其视图,还是会在配置更改时重新创建?"保留"究竟是什么意思?

  • 当用户离开活动时,片段是否会被销毁?

  • 为什么它不适用于后端堆栈上的碎片?

  • 哪个是使用此方法有意义的用例?

android android-fragments

328
推荐指数
4
解决办法
16万
查看次数

在Android应用程序中使用Intent来显示另一个活动

在我的Android应用程序中,我有两个活动类.我在第一个按钮上有一个按钮,我想在点击它时显示第二个按钮,但是我收到错误.以下是课程:

public class FirstActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button orderButton = (Button)findViewById(R.id.order);

    orderButton.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View view) {
        Intent intent = new Intent(FirstActivity.this, OrderScreen.class);
        startActivity(intent);
      }

    });
  }
}
Run Code Online (Sandbox Code Playgroud)

单击按钮时应显示的第二个类,但从不执行:

public class OrderScreen extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.order);

    Button orderButton = (Button) findViewById(R.id.end);

    orderButton.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View view) {
        finish();
      }

    });
  }
}
Run Code Online (Sandbox Code Playgroud)

如何创建一个显示第二个活动的按钮?

android android-intent android-activity

194
推荐指数
3
解决办法
41万
查看次数

在Eclipse中将Activity添加到Android项目的最佳方法?

将活动添加到现有Android项目时,我手动创建一个新类 - 这是最佳/首选方式吗?其他人如何处理?

eclipse ide android android-activity

189
推荐指数
3
解决办法
17万
查看次数

AsyncTaskLoader与AsyncTask

既然Honeycombv4 Compatibility Library可以使用AsyncTaskLoader.据我所知,它AsyncTaskLoader可以通过配置更改生存,如屏幕翻转.

是否建议使用AsyncTaskLoader而不是AsyncTask?是否LoaderManager也参与其中?

但我没有找到任何关于如何正确使用的好例子AsyncTaskLoader.文档也没有提供任何示例.谁能提供一些很好的例子.

android android-asynctask android-loadermanager

128
推荐指数
4
解决办法
5万
查看次数

`LoaderManager`中`initLoader`和`restartLoader`的区别

关于initLoader以下restartLoader功能之间的差异,我完全迷失了LoaderManager:

  • 它们都有相同的签名.
  • restartLoader 还会创建一个加载器(如果它不存在)("在此管理器中启动新的或重新启动现有的加载器").

两种方法之间是否存在某种关系?打电话restartLoader总是打电话initLoader吗?我可以打电话restartLoader而不必打电话initLoader吗?是否保存以调用initLoader两次刷新数据?我什么时候应该使用其中一个而且(重要的!)为什么?

java android android-loadermanager

127
推荐指数
4
解决办法
3万
查看次数

带有多个加载器的LoaderManager:如何获得正确的游标加载器

对我来说,如果您有多个装载机,如何获得正确的光标并不清楚.让我们说你定义了两个不同的Loader:

getLoaderManager().initLoader(0,null,this);
getLoaderManager().initLoader(1,null,this);
Run Code Online (Sandbox Code Playgroud)

然后在onCreateLoader()中你根据id做不同的事情:

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle arg1) {

    if (id==0){
               CursorLoader loader = new CursorLoader(getActivity(),
            MaterialContentProvider.CONTENT_URI,null,null,null,null);
    }else{
               CursorLoader loader = new CursorLoader(getActivity(),
            CustomerContentProvider.CONTENT_URI,null,null,null,null);
            };
    return loader;
} 
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是如何在onLoadFinished()中获得正确的光标,因为你没有得到任何id来识别正确的Cursoradapter光标.

@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) {


    mycursoradapter1.swapCursor(cursor);
    if(isResumed()){
        setListShown(true);
    }else {
        setListShownNoAnimation(true);
    }



}
//and where to get the cursor for mycursoradapter2
Run Code Online (Sandbox Code Playgroud)

或者我错了,这是在一个片段中获得两个不同cursoradapter的结果的错误方法.

android android-loadermanager android-loader

116
推荐指数
3
解决办法
3万
查看次数

如何在Android中调用另一个活动时提供动画?

我有两个活动A和B.我希望在活动A调用B时收缩动画,并在活动B调用A时最大化动画.我不需要动画xml文件.

当我们在Android中调用另一个Activity时,它会提供默认动画,然后调用缩小动画.

我想要的是不应该发生默认动画,我想要的动画应该发生.

我们可以在调用另一个Activity时实际给出动画吗?

animation android android-activity

113
推荐指数
3
解决办法
13万
查看次数