質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.00%

Androidでの画面遷移

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 841
退会済みユーザー

退会済みユーザー

以下のようにsaveButtonを押すとSettingFragmentに遷移(それがやりたいこと)するようなコードを書きました。

saveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SavePreference savePreference = new SavePreference();
                String aToken = savePreference.load_aToken(getApplicationContext());
                savePreference.save_aToken(ProfileActivity.this, aToken);
                UserInfoApi userInfoApi = ServiceGenerator.createService(UserInfoApi.class, aToken);
                String sexData = sexEditAdapter.getItem(sexEdit.getSelectedItemPosition()).first;
                String areaData = areaSpinnerAdapter.getItem(areaSpinner.getSelectedItemPosition()).first;
                String birthData = (birthYear.getSelectedItemPosition() + 1900) + "-" + (birthMonth.getSelectedItemPosition() + 1) + "-" + (birthDay.getSelectedItemPosition() + 1);
                UserInfoApi api = ServiceGenerator.createService(UserInfoApi.class, aToken);
                email = RequestBody.create(MediaType.parse("multipart/form-data"), String.valueOf(mailEdit.getText()));
                sex = RequestBody.create(MediaType.parse("multipart/form-data"), sexData);
                birthday = RequestBody.create(MediaType.parse("multipart/form-data"), birthData);
                username = RequestBody.create(MediaType.parse("multipart/form-data"), String.valueOf(usernametext.getText()));
                area = RequestBody.create(MediaType.parse("multipart/form-data"), areaData);
                bio = RequestBody.create(MediaType.parse("multipart/form-data"), String.valueOf(introductiontext.getText()));
call.enqueue(new Callback<UserInfo>() {
                    @Override
                    public void onResponse(Call<UserInfo> call, Response<UserInfo> response) {

                        Intent nextActivity = new Intent(getActivity(), SettingFragment.class);
                        startActivity(nextActivity);

                    }


しかし、

Intent nextActivity = new Intent(getActivity(), SettingFragment.class);


のところのgetActivity()でCannot resolve methodとでました。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

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

        Button sendButton = (Button) findViewById(R.id.send_button);
        sendButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplication(), SubActivity.class);
                startActivity(intent);
            }
        });
    }
}


と描かれているWEBを参考にして作りました。こちらではgetApplication()は定義されていないようです。
自分のコードでどのように定義すべきでしょうか?

クラスの宣言部分には

public class ProfileActivity extends Activity {


    private Bitmap bitmap;
    private byte[] bytes;
    private Uri bitmapUri;
    private RequestBody icon_img;
    private static final int REQUEST_CODE_CAMERA = 1;
    private static final int REQUEST_CODE_GALLERY = 2;
    private EditText mailEdit;
    private EditText nicknametex;
    private EditText usernametext;
    private EditText introductiontext;
    private Spinner areaSpinner;
    private Spinner sexEdit;
    private Spinner birthYear;
    private Spinner birthMonth;
    private Spinner birthDay;
    private Button saveButton;
    private ArrayAdapter parentSpinnerAdapter, childSpinnerAdapter;
    private Spinner parentSpinner, childSpinner;
    private ImageButton icon;
    private RequestBody email;
    private RequestBody sex;
    private RequestBody birthday;
    private RequestBody username;
    private RequestBody area;
    private RequestBody bio;
    private UserInfoApi userInfoApi;
    private TextView privacy_link, terms_link, forgotten_link, user_regist;
    private static final int USER_REGIST = 1;
    private com.google.firebase.analytics.FirebaseAnalytics FirebaseAnalytics;
    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See https://g.co/AppIndexing/AndroidStudio for more information.
     */
    private GoogleApiClient client;
    private Button SaveButton;
    private KeyValuePairAdapter sexEditAdapter;
    private KeyValuePairAdapter areaSpinnerAdapter;


と書きました

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

getApplicationContext()を代わりに使ってみては?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

エラーメッセージの通り、そのクラスにはgetActivity()メソッドが存在しないんでしょうね。
そのクラスはなんですか?
クラスの宣言部分を追記してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/09/01 22:30

    ありがとうございます、追記しました

    キャンセル

  • 2016/09/01 22:34 編集

    ProfileActivity.thisに書き換えてください。
    ただ、この処理ではFragmentには遷移できないですよ。

    キャンセル

  • 2016/09/01 22:38

    そうなんですか!ではどうしたらFragmentに遷移できますか?

    キャンセル

  • 2016/09/01 22:40

    SettingFragmentはFragmentを継承しているんですよね?
    それならFragmentManagerを使う必要があります。
    基本的なやり方はリファレンスやブログで調べましょうね。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.00%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる