相关疑难解决方法(0)

Android片段中的getIntent().getExtras()在哪里/如何?

通过活动,我曾经这样做:

在活动1中:

Intent i = new Intent(getApplicationContext(), MyFragmentActivity.class);
                i.putExtra("name", items.get(arg2));
                i.putExtra("category", Category);
                startActivity(i);
Run Code Online (Sandbox Code Playgroud)

在活动2中:

Item = getIntent().getExtras().getString("name");
Run Code Online (Sandbox Code Playgroud)

你是如何使用Fragments做到这一点的?我也在使用兼容性库v4.

它是否属于FragmentActivity?还是实际的碎片?它采用哪种方法?的onCreate?onCreateView?另一个?

我可以看一下示例代码吗?

编辑:值得注意的是我试图将Activity 1保持为Activity(或者实际上是ListActivity,我点击时传递listitem的意图)然后传递给一组tabbed-fragments(通过Fragment Activity)和我需要任何一个标签才能获得额外的东西.(我希望这可能吗?)

android android-intent android-fragments android-activity

101
推荐指数
2
解决办法
14万
查看次数

当从操作栏"向上"时,如何恢复活动而不是重新启动

我有两个活动.说Activity AActivity B.
Activity A我单击按钮启动Activity B这是我用于此的代码:

Intent intent = new Intent(this, ActivityB.class);
this.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)


现在,在这一点上,我在Activity B.在on create方法中Activity B,我启用了向上按钮.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_news);

    getActionBar().setDisplayHomeAsUpEnabled(true); //Here//
}
Run Code Online (Sandbox Code Playgroud)

并在"向上"按钮的事件句柄上,我有这个代码:

public boolean onOptionsItemSelected(MenuItem item){
     switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            NavUtils.navigateUpFromSameTask(this);
        default:
            return super.onOptionsItemSelected(item);
    }
}
Run Code Online (Sandbox Code Playgroud)


现在我决定回到Activity A单击操作栏中的向上按钮,如下所示:在此输入图像描述

现在问题是,当我点击"向上按钮"时,它返回到Activity A哪个很好,但它重新启动它.怎么能让它停止重启?我只想让它恢复.

当我使用我的硬件后退按钮时,它按预期工作.即它转到Activity A并恢复它而不是重新启动它.

我希望我的活动恢复,因为在那个活动上,我在网上下载了一些字符串,因此我不希望它在用户从活动B开始时继续下载数据- >活动A


编辑 …

android android-actionbar android-navigation

39
推荐指数
1
解决办法
1万
查看次数

处理操作栏按钮的正确方法?

我使用ActionBarSherlock(虽然我不认为这很重要).

我有一个主要活动和一个关于活动.我希望About活动通过其徽标显示后箭头,并执行适当的动画等.我不知道如何正确地做到这一点.

目前,我在onOptionsMenuItemSelected下按下Up/Home按钮时启动Main活动,但是它很hacky并且不能正常工作.它播放错误的动画,并且处理多任务处理不佳.

我该如何正确设置?

这是我的Main活动中启动About的部分:

Intent aboutIntent = new Intent(MainActivity.this, About.class);
MainActivity.this.startActivity(aboutIntent);
Run Code Online (Sandbox Code Playgroud)

这是我的关于活动:

package com.stevenschoen.test;

import android.content.Intent;
import android.os.Bundle;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuItem;

public class About extends SherlockActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

            case android.R.id.home:
                // app icon in action bar clicked; go home
                Intent intentHome = new Intent(this, MainActivity.class);
                intentHome.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intentHome);
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java android android-actionbar

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

向上导航和保存的实例数据

一个应用程序有2个活动,A和B.

A具有保存的实例数据

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("foo", 0);
}
Run Code Online (Sandbox Code Playgroud)

和A有

int bar;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...
    if (savedInstanceState != null) {
        bar = savedInstanceState.getInt("foo");
    } else {
        bar = -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

恢复数据.

活动B启用了操作栏

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getActionBar().setDisplayHomeAsUpEnabled(true);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

启用导航.A也被列为B的父活动AndroidManifest.xml.

当用户从A导航到B时onSaveInstanceState,如果他们导航回A使用后退按钮活动,则A正确恢复其保存的信息.

但是,当用户从A导航到B时onSaveInstanceState,然后使用向上导航返回到A,即使保存了信息,onCreate(Bundle savedInstanceState)也会传递null.

如何启动导航以传递创建的Bundle onSaveInstanceState

android android-activity android-actionbar

8
推荐指数
1
解决办法
3104
查看次数

这是Android 4.0中的新实现吗?

我在Android 4.0.3(冰淇淋三明治)中开发了一个应用程序,我正在使用两个活动来测试活动导航.但我在活动导航中观察到了不同的行为.

我从活动A调用活动B.在活动B中,我只是调用finish()方法.这样我们就可以看到Previous Activity A.它完全按预期工作但问题是后退导航(调用完成方法或按后退键),它调用onCreate()方法的Activity A而不是调用onResume( ).但在以前的版本中,它的表现并不像这样.这是android 4.0中的新实现吗?

以下是我实施的示例:

Activity_A:

public class Activity_A extends Activity {

    /** Called when the activity is first created. */
    static int count=0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView text=(TextView)findViewById(R.id.textcontent);
        text.setText("Activity 1 called:"+(++count)+" Times");
    }

    public void onClick(View v)
    {
        Intent intent=new Intent(this,Activity2.class);
        startActivityForResult(intent, 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.d("onActivityResult", "Called with Code:"+resultCode);
    }

}
Run Code Online (Sandbox Code Playgroud)

Activity_B:

public class Activity_B extends Activity {

      /** Called when …
Run Code Online (Sandbox Code Playgroud)

android android-activity

5
推荐指数
2
解决办法
991
查看次数