0

レイアウトの 1 つで縁なしボタンをオンにしています。クリックすると、ボタンのタグとそれに含まれるテキストの両方を転送する意図が必要です。これを行うのに問題があります。

これは、ボタンがクリックされたときに私が持っているものです:

public void openGoalWeek (View view) {
    Intent intent = new Intent(this, ViewGoal.class);
    Button button = (Button) findViewById(R.id.week_goal);
    Bundle bundle = new Bundle();
    bundle.putString(EXTRA_MESSAGE, button.getText().toString());
    bundle.putString(EXTRA_TAG, button.getTag().toString());
    intent.putExtras(bundle);
    startActivity(intent);
}

これは私がViewGoalクラスに持っているものです:

public class ViewGoal extends Activity {

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

        // make sure running on honeycomb or higher for actionbar API
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            // Show the Up button in the action bar.
            getActionBar().setDisplayHomeAsUpEnabled(true);
        }
        // get the message from the intent
        Intent intent = getIntent();
        String message = intent.getBundleExtra(MainActivity.EXTRA_MESSAGE).toString();
        String tag = intent.getBundleExtra(MainActivity.EXTRA_TAG).toString();

        String text = "null";

        if (tag == "year_tag") {
            DatabaseHandler db = new DatabaseHandler(this);
            Goal goal = db.getYearGoal(message);
            text = goal._title + "\n" + goal._description;
        }

        if (tag == "month_tag") {
            DatabaseHandler db = new DatabaseHandler(this);
            MonthGoal goal = db.getMonthGoal(message);
            text = goal._title + "\n" + goal._description;
        }

        if (tag == "week_tag") {
            DatabaseHandler db = new DatabaseHandler(this);
            WeekGoal goal = db.getWeekGoal(message);
            text = goal._title + "\n" + goal._description;
        }

        // create the text view
        TextView textView = new TextView(this);
        textView.setTextSize(10);
        textView.setText(text);

        // display the content
        setContentView(textView);
    }
}

エラーがスローされますが、その理由はわかりません。どんな助けでも大歓迎です!

4

2 に答える 2

0

バンドルを使用する代わりに EXTRA を入れてください:

...
Intent intent = new Intent(this, ViewGoal.class);
intent.putExtra( EXTRA_MESSAGE, button.getText().toString());
intent.putExtra( EXTRA_TAG, button.getTag().toString());
....

後で他のアクティビティで:

....
// get the message from the intent
Intent intent = getIntent();
String id   = intent.getStringExtra(EXTRA_MESSAGE);
String name = intent.getStringExtra(EXTRA_TAG);
....
于 2013-02-18T05:11:36.847 に答える
0

onClick ボタンでは、これを使用する代わりに、これclassname.this によっていくつかのエラーが削除されます。それがあなたを助けるかどうか試してください。

public void openGoalWeek (View view) {
Intent intent = new Intent(className.this, ViewGoal.class);
Button button = (Button) findViewById(R.id.week_goal);
Bundle bundle = new Bundle();
bundle.putString(EXTRA_MESSAGE, button.getText().toString());
bundle.putString(EXTRA_TAG, button.getTag().toString());
intent.putExtras(bundle);
startActivity(intent);
于 2013-02-18T05:14:21.260 に答える