1
package com.example.tictactoemain;

import com.example.tictactoelib.GameActivity;
import com.example.tictactoelib.GameView.State;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;

import com.example.tictactoelib.GameActivity;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    private void startGame(boolean startWithHuman) {
        Intent i = new Intent(this, GameActivity.class);
        i.putExtra(GameActivity.EXTRA_START_PLAYER, startWithHuman ? State.PLAYER1.getValue() : State.PLAYER2.getValue());
        startActivity(i);
    }

}

ゲーム アクティビティ :

package com.example.tictactoelib;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

import com.example.tictactoelib.GameView.State;

public class GameActivity extends Activity {

    public static final String EXTRA_START_PLAYER = 
            "com.example.android.tictactoelib.GameActivity.EXTRA_START_PLAYER";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

MainActivity 内でエラーが発生します:

EXTRA_START_PLAYER cannot be resolved or is not a field.

メイン プロジェクトは、tictactoelib を緑色のチェック ボックス付きのライブラリとして参照します。同様に、tictactoelib はライブラリ プロジェクトとして作成されました。EXTRA_START_PLAYER は public static final String として定義されていますが、メイン プロジェクトには表示されないようです。私は TicTacToe SDK android-17 プロジェクトをつなぎ合わせているので、問題がどこにあるのかまだわかりませんが、エラーを解決しようとしています。

私はまた、次の正確な意味を疑問に思っています:="com.example.android.tictactoelib.GameActivity.EXTRA_START_PLAYER";

前もって感謝します...

4

1 に答える 1

0

使用する

private void startGame(boolean startWithHuman) {
        Intent i = new Intent(this, GameActivity.class);
        i.putExtra("com.example.android.tictactoelib.GameActivity.EXTRA_START_PLAYER", startWithHuman ? State.PLAYER1.getValue() : State.PLAYER2.getValue());
        startActivity(i);
    }

代わりに、1 つのアクティビティでのみ使用している場合

于 2013-07-01T05:34:10.783 に答える