在我正在处理的应用程序中,我有一个ListView的第一个活动,它从保存到apps内部存储器的ArrayList填充.无论是通过菜单按钮,选择"添加"或在菜单中攻现有项目我能到这是一个编辑页面我的第二次活动.
在第一个活动中,如果按下"添加"按钮,则意图中没有传递额外内容,并且编辑活动中不需要填充任何字段(文本框等).如果在第一个活动中单击现有项目,则会将该项目的行ID作为额外内容传递给Intent,其中键字符串为"_id".
我知道*Bundle.getLong("_ id");*如果没有与intent一起传递额外的话,应返回null.我的问题是,由于某种原因,getLong()总是返回0.我尝试将一些乱码作为getLong()的关键字符串,但它仍然返回0.有没有人遇到过这个问题?
我还想补充一点,我还有两组与此类似的活动,使用相同的方法获取rowId(如果已经通过),它们都可以正常工作.
我找不到任何可能导致此问题的常见问题.在此先感谢您的帮助.
[编辑]
对任何令人困惑的事情表示歉意,并且之前未显示此代码.正如一些人评论说,如果getLong找不到任何东西,它将返回0,但是我使用的代码将mRowId设置为null,如果是这种情况,或者至少我认为它确实如此.这有点让我困惑,但似乎没有其他额外的意图传递.
mRowId = extras != null
? extras.getLong("_id")
: null;
Run Code Online (Sandbox Code Playgroud)
我也有另一个烂摊子四周,发现如果任何额外的价值与目的(无论其键),通过它,则它会返回0,而不是空.我假设如果传递了另一个额外的代码,则此代码不起作用.如果是这种情况,有必要在更好的方法传递rowId,如果没有传递则将其设置为null.
我正在开发一个应用程序,我需要使用某种方法来点击一个按钮来进行两种不同的意图.第一个有时只能在不崩溃应用程序的情况下启动.因此,我需要启动另一个意图,因为应用程序通常会崩溃.
更好的解释我是否需要某种方法来启动另一个意图,如果1. intent无法启动新活动,则启动2意图.
我真的很欣赏某种公式,而不是链接或参考.
EXTRA_APPLICATION_ID似乎无法在平板电脑中使用.在我的服务意图启动浏览器时,您是否知道重复使用Browser.apk的选项卡?这与9902225直接相关.任何提示都表示赞赏.
原因:如果设备是平板电脑,则不会调用resuseTab().
见行:
* 3-tablet) Open new tab
Run Code Online (Sandbox Code Playgroud)
见行:
if (activateVoiceSearch || !BrowserActivity.isTablet(mActivity)) {
Run Code Online (Sandbox Code Playgroud)
// Browser.apk源代码(Android 4.0.3_r1-6)
com.android.browser.IntentHandler
void onNewIntent(Intent intent) {
....
/*
* TODO: Don't allow javascript URIs
* 0) If this is a javascript: URI, *always* open a new tab
* 1) If this is a voice search, re-use tab for appId
* If there is no appId, use current tab
* 2) If the URL is already opened, switch to that tab
* 3-phone) …Run Code Online (Sandbox Code Playgroud) 我试图启动这样的相机意图时遇到了这个问题:
String imagePath;
imagePath = Environment.getExternalStorageState() + "/images/myimage.jpg";
File file = new File( imagePath );
Uri outputFileUri = Uri.fromFile( file );
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CAMERA);
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:REQUEST_CAMERA无法解析为变量
任何帮助表示赞赏!
问候克里斯
我是Android开发的新手,我开发了一个小应用程序但是我遇到了链接不同活动的问题(即以期望的方式在活动之间导航).我很抱歉问这些问题,但我尝试了谷歌的不同解决方案,但它们都没有为我工作,我仍然不清楚这些概念.
Plz的帮助
我有一些问题:
如何删除堆栈顶部的活动?
如何从活动堆栈中删除所有活动?
具有(Intent.FLAG_ACTIVITY_NO_HISTORY)的Intent(A.this,B.class)不会将活动B添加到堆栈中,但如果我想将活动A添加到堆栈中该怎么办?
有没有办法可以看到活动堆栈的内容(这将有助于我在调用活动时设置适当的标志)?
我有一个活动A(带有3个按钮),我从中调用活动B,我在那里完成了一些用户输入的操作,我想回到活动A,但我想只显示那3个按钮,我该怎么办?这个?(我面临的问题是A中的活动有3个按钮,所以我想通过删除它并创建新意图重新启动它或者使堆栈中的相同条目再次启动,以便根据条件显示1个按钮)
提前致谢.
我的用例如下:
在活动AI呼叫:
startActivity(B);
finish();
Run Code Online (Sandbox Code Playgroud)
现在在onCreate of Activity BI需要知道启动B的活动,所以我想知道是否在活动BI调用的onCreate(...)中:
getIntent();
Run Code Online (Sandbox Code Playgroud)
我是否能够获得启动Activity B的Intent或者此时getIntent()的Intent已经返回null,因为我在调用startActivity(B)后立即完成了Activity A?
我在我的应用程序中遇到一个问题,当我检查设置 - >显示 - >自动旋转屏幕并运行我的应用程序,其中所有活动将以横向模式显示,所以当我从其他活动启动一个活动并旋转设备采用垂直形式,并在点击按钮后返回到上一个活动,在点击事件中我完成了活动,这将使之前的活动处于最顶层,但它会丢失所有其先前配置的数据,但是当我取消选中设备的自动旋转屏幕时选项保持以前的活动状态.
所以不确定,为什么会出现这种情况?
请帮我解决一下.
问候,皮克斯
我正在尝试Activity使用一个新的开始Intent.我已经在另一个应用程序中成功完成了这项工作,但这种方法在这种情况下似乎不起作用?
这是我的代码......
public void startLevelEnd(Context context){
Intent myIntent = new Intent(FirstActivity.this, LevelEndPanel.class);
FirstActivity.this.startActivity(myIntent);
}
Run Code Online (Sandbox Code Playgroud)
从我的AndroidManifest.xml档案......
<activity android:label="@string/app_name" android:name=".LevelEndPanel"></activity>
Run Code Online (Sandbox Code Playgroud)
我startLevelEnd()用...来调用例程(来自不同的类)
FirstActivity.startLevelEnd(this);
Run Code Online (Sandbox Code Playgroud)
我NullPointerException在"Intent myIntent ..."一行中收到错误(来自上面的代码片段):
04-16 09:46:39.361: E/AndroidRuntime(475): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
Run Code Online (Sandbox Code Playgroud)
完整日志:
04-16 14:32:32.870: E/AndroidRuntime(336): FATAL EXCEPTION: main
04-16 14:32:32.870: E/AndroidRuntime(336): java.lang.NullPointerException
04-16 14:32:32.870: E/AndroidRuntime(336): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
04-16 14:32:32.870: E/AndroidRuntime(336): at android.content.ComponentName.<init>(ComponentName.java:75)
04-16 14:32:32.870: E/AndroidRuntime(336): at android.content.Intent.<init>(Intent.java:2702)
04-16 14:32:32.870: E/AndroidRuntime(336): at happyworx.nl.App.FirstActivity.startLevelEnd(FirstActivity.java:32)
04-16 14:32:32.870: E/AndroidRuntime(336): at happyworx.nl.App.model.components.GameManager.LevelEnd(GameManager.java:89)
04-16 14:32:32.870: E/AndroidRuntime(336): at happyworx.nl.App.model.components.GameManager$1.run(GameManager.java:60)
04-16 …Run Code Online (Sandbox Code Playgroud) 如何关闭和活动按钮单击?
ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// ******I WANT THE CODE HERE ???? **********
}
});
Run Code Online (Sandbox Code Playgroud) 有人可以解释下面的错误信息是什么意思吗?错误是:
java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.TextView
Run Code Online (Sandbox Code Playgroud)