0

配列のインテントに問題があります。長方形の配列を別のパッケージに送りたいです。私はこのチュートリアルに従っています。残念ながら、インテントにはまだ問題があります。だから私はクラスを持ってい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);
    }
}

私が使用する別のパッケージの 2 番目のアクティビティの場合:

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 マニフェストにもいくつか変更を加えました。2 番目のパッケージについては、次のように記述します。

<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);

何を変えればいいのかわからない。何か考えはありますか?

4

1 に答える 1

1

は別のパッケージに含まれているためSamplePreferenceActivity、クラスを にインポートする必要がありますActivityToSend。他のインポートと同じです。com.PrinterStatus.AppLab.ActivityToSend.javaマニフェストの内容から判断すると、これを(他のimportステートメントと共に)の一番上に配置する必要があります。

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

Eclipse を使用している場合は、ctrl-shift-O を使用してインポートを自動的に解決できる可能性があります。

于 2013-09-01T20:12:09.737 に答える