Android活动显示视图

时间:2012-08-20 12:36:49

标签: android android-activity

我有一个活动A来启动另一个活动B.在活动B中,有一些从互联网下载资源的功能。当A跳到B时,我想立即显示B'view。实际上,B'view将被隐藏,直到所有功能准备就绪。 我希望B在处理数据时显示“搜索......”。

A:
    Intent intent = new Intent(A.this, B.class);
    intent.putExtra("result",obj.getText());
    A.this.startActivity(intent);


B:
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.success);
        TextView text = (TextView)this.findViewById(R.id.textview);
        text.setText("searching....");         
        Bundle bun= getIntent().getExtras();
        String tempIsbn=bun.getString("result");

        //some functions
        bookinfo=getResultByIsbn(tempIsbn);
                  .....
    }

3 个答案:

答案 0 :(得分:0)

bookinfo=getResultByIsbn(tempIsbn);移至另一个主题。使用Java线程或AsyncTask来执行此操作。

答案 1 :(得分:0)

您可以AsyncTask隐藏并显示结果

private class PerformTask extends AsyncTask<Void, Void, Void>{

    @Override
    protected void onPreExecute() {
        /**
                      * display view to show progress
                      **/
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... params) {
        bookinfo=getResultByIsbn(tempIsbn);
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        /**
                      * hide progress
                      * display results
                      **/
        super.onPostExecute(result);
    }
}

答案 2 :(得分:0)

一个简单的线程可以在你的活动B的oncreate函数中完成这个技巧:

new Thread(new Runnable() {

        @Override
        public void run() {

            bookinfo=getResultByIsbn(tempIsbn);

            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    // Update UI

                }
            });

        }
    }).start();