java - 将带有 Intent 的数组发送到不同的包

标签 java android arrays android-intent

我对数组的 Intent 有疑问。我想将一个矩形数组发送到另一个包。我正在关注this tutorial 。不幸的是,我对 Intent 仍然有疑问。所以我有类ActivityToSend。我想将 storePrintIMC 发送到不同包的另一个类 (SamplePreferenceActivity) 中。

ActivityToSend 类:

public class ActivityToSend extends Activity {
    private Activity activity;
    private ArrayList<String[]> data;
    private static LayoutInflater inflater = null;
    public String[] inkLevels = new String[5];
    View message;
    String [][] storePrintIMC= new String [4][4];
    public static final String ARRAYS_COUNT = "com.Status.App.ARRAYS_COUNT";
    public static final String ARRAY_INDEX = "com.Status.App.ARRAY_INDEX"; 

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final String data[][] = storePrintIMC; 
        Bundle bundle = new Bundle();
        int count = data.length; 
        bundle.putInt(ARRAYS_COUNT, count); 
        for (int i = 0; i < count; i++)
        { 
            bundle.putStringArray(ARRAY_INDEX + i, data[i]); 
        } 
        Intent intent = new Intent(this, SamplePreferenceActivity.class); 
        intent.putExtras(bundle);

        startActivity(intent);
    }
}

对于我使用的不同包中的第二个 Activity :

public class SamplePreferenceActivity extends PreferenceActivity {    
    private static final int DIALOG_READ_ME = 1;
    public String[] inkLevels = new String[5];

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
            int count = bundle.getInt(ActivityToSend.ARRAYS_COUNT, 0);

            ArrayList<String[]> arrays = new ArrayList<String[]>(count);

            for (int i = 0; i < count; i++)
                arrays.add(bundle.getStringArray(ActivityToSmartWatch.ARRAY_INDEX + i));

            String[][] data = arrays.toArray(new String[][]{});
        }
    }
}

我还对 Android list 进行了一些更改。对于第二个包,我放置:

<activity android:name=".SamplePreferenceActivity " android:label="@string/preference_activity_title">
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.PrinterStatus.AppLab.SamplePreferenceActivity " /> 
  - <intent-filter>
        <action android:name="android.intent.action.MAIN" /> 
    </intent-filter>
</activity>
<activity android:name="com.sonyericsson.extras.liveware.extension.controlsample.SamplePreferenceActivity" android:parentActivityName="com.PrinterStatus.AppLab.ActivityToSend" /> 
<service android:name="com.sonyericsson.extras.liveware.extension.controlsample.SampleExtensionService" /> 

我在第一个包中遇到错误:

Intent intent = new Intent(this, SamplePreferenceActivity.class);

我不知道我需要改变什么。你有什么想法吗?

最佳答案

由于 SamplePreferenceActivity 位于不同的包中,因此您需要将该类导入到 ActivityToSend 中。就像任何其他进口一样。从 list 中的内容来看,您需要将其放在 com.PrinterStatus.AppLab.ActivityToSend.java 的顶部附近(与其他 import 语句一起):

import com.sonyericsson.extras.liveware.extension.controlsample.SamplePreferenceActivity;

如果您使用 Eclipse,您可能可以使用 ctrl-shift-O 自动解析导入。

关于java - 将带有 Intent 的数组发送到不同的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562341/

相关文章:

android - 选择退出 Google Play App Signing 是永久性的吗?

android - AudioFocus 请求拒绝 OpenTok(Tokbox) 在相同添加的调用中,android 9 和 10

arrays - 在数组中查找 block

java - 如何在 Java 中交换字符数组(就地)

java - 邮件中HTML数据内容不正确

java - 相当于在 Java 中扩展一个 final 类

c# - MultiSelectable ListView - ItemSelected 未被调用

java - 如果设置为任何目录,我可以从类路径加载资源吗?

java - 如何修复无法打开与 jdbc 的连接 :oracle:thin:@ldap://etc\nQuery mode must be specified

c - 使用单个指针访问二维数组