小编flx*_*flx的帖子

NavUtils.navigateUpTo()不会启动任何Activity

我有两个活动

  • MainActivity
  • DeepLinkActivity

我设置了所有内容,NavUtils以便像在这里,这里这里建议一样进行导航.

我想要实现的是:

  1. DeepLinkActivity深层链接开始
  2. 按下来
  3. MainActivity

只要我的应用程序在最近的应用程序中有任何任务,一切都很好.

但是,当我从最近的应用程序中删除我的应用程序时,它的行为如下:

  1. 从最近的应用中移除我的应用
  2. DeepLinkActivity深层链接开始
  3. 按下来
  4. 我的应用程序关闭,就像按下时一样

我调试了代码,然后发现,NavUtils.shouldUpRecreateTask()返回false. upIntent将所有内容设置为正常,就像我的Component设置一样.但是,NavUtils.navigateUpTo()行为就像打电话一样finish().没有日志声明,没有.

任何想法,如何解决?

AndroidManifest.xml中

<activity
    android:name=".DeepLinkActivity"
    android:parentActivityName="my.package.MainActivity">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="my.package.MainActivity"/>
    <intent-filter>
        <!-- Some intent filter -->
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

DeepLinkActivity.java

@Override
public boolean onOptionsItemSelected(final MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent upIntent = NavUtils.getParentActivityIntent(this);
            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                // create new …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-activity

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

操作栏未随AppCompat显示

我正在使用AppCompat将我的应用程序移植到API7,并且操作栏出现问题.

当我使用FragmentActivity动作栏时显示在我的手机上(API18),但是ActionBarActivity按下menubutton会显示为选项菜单.

在具有API7的模拟器上,操作栏始终显示为选项菜单.

有任何想法吗?

android android-appcompat android-actionbar android-actionbar-compat

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

getActionBar()setDisplayHomeAsUpEnabled(真).在新活动创建时抛出NullPointerException(Google - Basic Tutorial)

我正在遵循本教程并在此代码块的DisplayMessageActivity的onCreate方法中获取NullPointerException:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// Show the Up button in the action bar.
getActionBar().setDisplayHomeAsUpEnabled(true); //Exception here
}
Run Code Online (Sandbox Code Playgroud)

我正在使用NexusOne AVD模板在模拟器上运行应用程序.
当我单击发送按钮并输入一些文本时,我得到了异常.

这是日志:

09-03 23:02:07.586: E/AndroidRuntime(7095): FATAL EXCEPTION: main
09-03 23:02:07.586: E/AndroidRuntime(7095): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackage.myfirstapp/com.mypackage.myfirstapp.DisplayMessageActivity}: java.lang.NullPointerException
09-03 23:02:07.586: E/AndroidRuntime(7095):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
09-03 23:02:07.586: E/AndroidRuntime(7095):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
09-03 23:02:07.586: E/AndroidRuntime(7095):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-03 23:02:07.586: E/AndroidRuntime(7095):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
09-03 23:02:07.586: E/AndroidRuntime(7095):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-03 23:02:07.586: E/AndroidRuntime(7095):     at android.os.Looper.loop(Looper.java:137)
09-03 23:02:07.586: E/AndroidRuntime(7095):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-03 23:02:07.586: E/AndroidRuntime(7095):     at …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-actionbar

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

将包含ASCII字符的字节数组转换为String

我有一个字节数组,由我希望转换为String的ASCII字符组成.例如:

byte[] myByteArray = new byte[8];
for (int i=0; i<8; i++) {
    byte[i] = (byte) ('0' + i);
}
Run Code Online (Sandbox Code Playgroud)

循环后,myByteArray应包含字符串"12345678".如何将此字符串转换为String变量?

谢谢!

java string bytearray

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

使用"url"inputType设置EditText

我试图做一个EditText这样的,当我点击它时出现一个包含".com"的键盘,因为一个url将被整合到EditText.我试图使用它:android:inputType="textUri"但它不起作用.我该怎么做?

url android android-edittext

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

从Bundle中删除条目(即extras)似乎与后退按钮组合使用

我有一个收听传入短信的BroadcastReceiver.如果消息来自某个发件人,则BroadcastReceiver使用以下代码启动我的应用程序:

final Intent activityIntent = new Intent(context, MainActivity.class);
activityIntent.putExtra("smsChallenge", smsText);
activityIntent.putExtra("smsSenderNumber", senderMobilNumber);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(activityIntent);
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的MainActivity中(即in onCreate()),我smsChallenge使用以下代码从intent中提取值并在提取后删除它:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    smsChallenge = extras.getString("smsChallenge");
    extras.remove("smsChallenge");
}
Run Code Online (Sandbox Code Playgroud)

所以我的应用程序从SMS启动并运行良好...但如果我选择按BACK按钮并重新启动应用程序(即通过Taskmanager),该值smsChallenge仍然在捆绑中extras.这意味着,我重新启动的应用程序认为它重新启动是因为新的短信不是真的......

当使用BACK按钮并再次重新启动应用程序时,为什么从捆绑中删除键值的任何想法似乎都不起作用?

android android-intent android-activity

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

如何更新ViewPager内容?

我有PageAdapter一周中的几天,对于每个寻呼机,我有相同的布局.我的问题是如何在更改日期时更新正确的listView.当我改变传呼机创建新的寻呼机并删除其他时,当发生这种情况时,我的列表视图指向新寻呼机而不是当前.例如,在wedneyday我保存列表视图的参考,当我在星期二改变周一寻呼机是创建和周四被删除,我的参考点,以最后一页创建(星期一),但我在星期二.

我的页面适配器:

ListView lvwConfig;

@Override
public Object instantiateItem(View pager, int position) {
    LayoutInflater inflater = (LayoutInflater) mContext
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflater.inflate(R.layout.pager_layout, null);
    lvwConfig = (ListView) v.findViewById(R.id.lvwConfig);
    ((ViewPager) pager).addView(v, 0);

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

我想ListView总是指向当前项目的listview.

android listview indicator pager android-viewpager

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

Android Studio错误:"您必须通过SDK Manager安装Android支持存储库"

我刚刚在Android Studio上初始化了一个项目,它在0.2.6版本中运行良好,但在0.2.7中,我收到此错误:

在此输入图像描述

它在我的Applications目录中创建一个文件夹,但它不会初始化项目.任何关于这个问题的帮助将不胜感激.版本0.1.1到版本0.2.6没有问题,但是当它达到0.2.7时,事情开始出现问题,就像这样,我甚至无法启动项目.

android android-support-library android-studio

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

容器如div,span等

是否可以创建像div这样的容器?问题是我有4个控件(TextView,Buttons和EditView),我想把它们放在中心位置.但我不是一个接一个地做这些,而是​​想知道是否有一种聪明的方法可以做到这一点.在Web应用程序中,使用css,我们可以在div上执行此操作:

margin-left: auto;
margin-right: auto;
height: xxx;
widht: yyy;
Run Code Online (Sandbox Code Playgroud)

然后div将以页面为中心

在创建Android应用程序时是否有类似的方法?

android android-layout

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

Android在托管热点时查找设备的IP地址

我需要在托管热点时找到设备的IP地址.到目前为止我使用过这段代码:

//if is using Hotspot
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
    NetworkInterface intf = en.nextElement();
    if (intf.getName().contains("wlan")) {
        for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
            InetAddress inetAddress = enumIpAddr.nextElement();
            if (!inetAddress.isLoopbackAddress() && (inetAddress.getAddress().length == 4)) {
                return inetAddress.getHostAddress();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这工作得很好但是NetworkInterface某些设备上的wifi 名称不同.所以我必须首先找到设备的wifi NetworkInterface名称(针对其热点).我怎么能找到这个名字?或者是否有更好的方法来查找设备的IP地址?

///通过MAC查找正确的IP地址似乎也不起作用

android ip-address wifi android-networking android-wifi

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