编辑适当的上下文
好的,所以它在正确的上下文中。我的主要活动有一个片段类,当用户到达片段类时,主活动上有一个OnClick方法,这就是我放置此代码的地方...
这就是我尝试过的活动1
context = this;
db = new MyDBEmbrASD(this);
List<ResourceTable> resources = db.getAllResource();
String[] imgFPString = new String[resources.size()];
String[] imgDrawable = new String[resources.size()];
String[] temprdm = new String[resources.size()];
//resources = db.getResources(); // you would not typically call this on the main thread
System.out.println("TESTESTESTESTESTEST");
for (int i = 0; i < resources.size(); i++) {
imgFPString[i] = resources.get(i).getimgFP();
temprdm[i] = imgFPString[i];
System.out.println(imgFPString[i]);
imgDrawable[i] = "drawable-mdpi/" + imgFPString[i];
System.out.println(imgDrawable[i]);
temprdm[i] = imgFPString[i];
}
List<String> wordList = Arrays.asList(temprdm);
Collections.shuffle(wordList);
String[] myShuffledArray = wordList.toArray(new String[wordList.size()]);
//int essonNumber = 1;
System.out.println("testestest" + myShuffledArray[1]);
Intent intent = new Intent(this, DragActivityV2.class);
intent.putExtra("mStringArray", myShuffledArray);
startActivity(intent);
活动2
Intent intent = getIntent();
String[] myShuffledArray = intent.getStringArrayExtra("mStringArray");
System.out.println("shfld array " + myShuffledArray[1]);
我得到一个错误进程:info.androidhive.tabsswipe,PID:25068java.lang.RuntimeException:无法启动活动ComponentInfo{info.androidhive.tabsswipe/info.androidhive.tabsswipe.dragview.DragActivityV2}:java.lang.NullPointerException
意图代码是基于这里已经发布的问题…但在我的情况下,它仍然不起作用…请帮助
编辑 这是整个日志错误
E/AndroidRuntime: FATAL EXCEPTION: main Process:java.lang.reflect.Method.invoke, PID: 27569Method.java:515:无法启动活动ComponentInfo{com.android.internal.os.ZygoteInit}:MethodAndArgsCaller.runZygoteInit.java:825(com.android.internal.os.ZygoteInit.main)ZygoteInit.java:641(dalvik.system.NativeStart.main)java.lang.NullPointerException800美元(info.androidhive.tabsswipe.dragview.DragActivityV2.onCreate)DragActivityV2.java:83android.app.Activity.performCreate美元(Activity.java:5264)android.os.Handler.dispatchMessage(Handler.java:110)android.os.Looper.loop(Looper.java:193)android.app.ActivityThread.main(ActivityThread.java:5299)java.lang.reflect.Method.invokeNative(原生方法)info.androidhive.tabsswipe(java.lang.RuntimeException)info.androidhive.tabsswipe/info.androidhive.tabsswipe.dragview.DragActivityV2java.lang.NullPointerException(android.app.ActivityThread.performLaunchActivity)ActivityThread.java:2338(android.app.ActivityThread.handleLaunchActivity)ActivityThread.java:2390(原生方法)原因:android.app.ActivityThread.accessActivityThread.java:151(android.app.ActivityThread)H.handleMessage(ActivityThread.java:1321)在android. app. Instrumentation. call ActivityOnCreate(Instrumentation. java: 1088)在android. app. ActivityThread. performLaunchActive(ActivityThread. java: 2302)在android. app. ActivityThread. handleLaunchactive(ActivityThread. java: 2390)
编辑
我注意到,当我删除System.out.println("shfld数组"myShuffledArray[1]);...如何测试/查看我的数组?
编辑清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="info.androidhive.tabsswipe"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.VIBRATE">
</uses-permission>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="info.androidhive.tabsswipe.MainActivitytest"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="info.androidhive.tabsswipe.DragDropActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="info.androidhive.tabsswipe.DraggableTestingActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="info.androidhive.tabsswipe.MultiImagesTouchActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="info.androidhive.tabsswipe.Main"
android:label="@string/app_name" >
</activity>
<activity
android:name="info.androidhive.tabsswipe.dragview.DragActivityV2"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
尝试使用<code>捆绑包
如果您不想使用bundle机制,请执行(假设这是活动之间的数据传递):
List<String> wordList = Arrays.asList(temprdm);
intent.putStringArrayListExtra("mylist", (ArrayList<String>) wordList );
然后在目标活动中
ArrayList<String> test = getIntent().getStringArrayListExtra("mylist");
至于片段和活动之间的通信或片段之间的通信,不能直接进行,尤其是在片段的活动不是它们的父容器的情况下(通常,对于活动到片段,我们可以通过getActive()
获得片段的父活动的实例)。因此,android留档引入了与其他片段通信,其想法是在片段中构建一个接口并让活动实现它,一旦完成,您可以在方法中执行任何从接口中被覆盖的操作。
实际上有一种虚拟的方法,不推荐,但是很有效(除了使用监听器接口)。为了使一些属性可以从片段传递到活动,创建一个单独的类来保存一些属性,然后使它们成为静态的,< code>class Holder { public static x,y,z;}使用这种方法,(无论您创建多少个片段/活动,x、y和z值在不同的组件中都是相同的),记住这一点,例如,在一个片段中,您修改这些值,然后在您创建的任何活动/片段中,您只需要通过< code>Holder.x、< code>Holder.y等等访问这些值...
我想把意图转移到Xamarin.Android中的另一个活动。基本上,我需要Intent.data和Intent.clipdata到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。 下面是Main Activity中的代码 在第二活动中 如何在第二个活动中检索意图?
在SO上也有类似的问题,但没有一个对我有效。 我想在Activity1中获取被点击的图像并在Activity2中显示它。 我获取被点击图像的图像id如下所示: 并通过意图传递给另一个活动。 任何帮助都很感激。
我尝试使用 如有任何帮助,不胜感激,谢谢。
Activity-2(将所选图像设置为屏幕背景图像的活动)
我有两个活动,分别是家庭活动和沙拉菜单活动。主页活动包含七个片段,其中一个名为菜单类别的片段有四个图像,第一个图像下面的文本是沙拉菜单,当用户单击沙拉菜单时,将启动名为沙拉菜单活动的新活动。 我想,当用户点击后退按钮时,home活动必须开始,并且应该从启动salad菜单活动的相同片段开始,即home活动中的菜单类别片段。我希望每个活动都会发生这种情况,例如,如果用户从您的订单片段开始一个新的活动,
我正在使用解析网站。 我在中有一个。 并且我需要将值传递给。 所以我创建了一个类实现。 但是,我在类中得到了一个。 如何将传递给另一个活动?