【Android】Activity/Fragment周りのデータ受け渡し方法(Java)

はじめに

Activity/Fragment周りのデータ受け渡しの方法まとめです。
Javaです。

ActivityからActivity

送信元のActivity

1
2
3
4
Intent intent = new Intent(this, ToActivity.class);
bundle.putExtra("NAME", "太郎");
startActivity(intent);
finish();

送信先のActivity(ToActivity)

1
2
3
4
5
6
7
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Intent intent = getIntent();
String name = intent.getStringExtra("NAME");
}

ポイントはbundleが不要なところです。

ActivityからFragment

送信元のActivity

1
2
3
4
5
6
7
8
ToFragment fragment = new ToFragment();
Bundle bundle = new Bundle();
bundle.putString("NAME", "太郎");
fragment.setArguments(bundle);
getSupportFragmentManager()
.beginTransaction()
.add(android.R.id.content, fragment)
.commit();

送信先のFragment(ToFragment)

1
2
3
4
5
6
7
8
9
  @Override
public void onResume() {
super.onCreate();

Bundle args = getArguments();
if (args != null) {
String name = args.getString("NAME");
}
}

ポイントはbundleを使うところです。

FragmentからActivity

確認中

FragmentからFragment

確認中

【plantUML】VSCodeでのエクスポート設定を変更する

plantUMLをVSCodeでエクスポートすると変なフォルダに作成されちゃいました。
以下の設定にするとpuフォルダと同じ所に作成されて良い感じになりました。

1
2
3
"plantuml.exportOutDir": ".",
"plantuml.exportFormat": "png",
"plantuml.exportSubFolder": false,

ちなみにファイル名はpuファイルのファイル名ではなく、1行目の@startuml hogeの部分が使われますのでご注意を。

cocoapodsのバージョンが変更できない時の解決策

cocoapodsのバージョンが変更できない時の解決策

他記事だとbrewではなくgemで管理する方法がよく紹介されていましたが、
自分の環境だとむしろgemだとダメでbrewだとうまくいきました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 変更前の状態
pod --version
# 1.8.4
which pod
# /Users/hoge/.rbenv/shims/pod

# gem→brewに変更する
gem uninstall cocoapods
brew install cocoapods
rm '/usr/local/bin/pod'
rm '/usr/local/bin/xcodeproj'
brew link cocoapods

pod --version
# 1.11.3
which pod
# /usr/local/bin/pod

BitbucketでGitリモート認証エラーになった

いつものようにgit pullしたら以下のエラーに遭遇した。

1
2
3
4
remote: Bitbucket Cloud recently stopped supporting account passwords for Git authentication.
remote: See our community post for more details: https://atlassian.community/t5/x/x/ba-p/1948231
remote: App passwords are recommended for most use cases and can be created in your Personal settings:
remote: https://bitbucket.org/account/settings/app-passwords/

なんか認証周りが変わったらしい。
bitbucketにwebでログインするパスワードだと通らなくなった。

代わりに以下のURLからアプリパスワードとかいうの設定して、それを入力したら通るようになった。

https://bitbucket.org/account/settings/app-passwords/

普段はVSCodeのメニューからgit pullしてて、その場合だと上のエラーメッセージが出ないのでハマった。。

Android Studioでエラー直前で止まってくれる設定方法

Android Studioで実行したアプリがエラーで落ちる時に、落ちる直前で止まってくれる方法です。

以下の画像の中のCreat breakpointのテキストをクリックすればOKです。

昔調べたけどやり方分からなくて、ログ見てたらたまたま気付いた。
もっと早くに知りたかった。。

【Android開発】ImageViewをDataBindingする方法【Kotlin】

ImageVIewにDataBindingする方法です。

まずはレイアウトファイル
hoge.xml

1
2
<ImageView
android:id="@+id/icon_menu"/>

次にFragment or Activityファイル
hoge.kt

1
binding.iconMenu.setImageResource(R.drawable.ic_action_hoge)

以上。

めちゃくちゃハマったけど最終的にシンプルに書けば良いだけだった。。
ググると複雑なやり方が出てくるのはどういうアレなんだろう。
これが正式なやり方じゃないかもだけど、とりあえず動いたので良かった。

【Salesforce】Apexの使い方メモ

Apexとは

Salesforceの開発に特化したプログラミング言語
→ライブラリのインストール不要でいきなりオブジェクトにアクセスできたりする
雰囲気はJavaに似てる

【kotlin】FragmentでViewBindingを導入する方法【Android開発】

kotlinでFragmentのViewBindingを導入する方法です。

初めに、xmlファイルに対して、全体をlayoutで挟みます。

1
2
3
4
5
6
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<!-- 元のコード -->

</layout>

次に、Fragmentのkotlinファイルで以下の通りに実装します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment

class WalkThroughFirstFragment : Fragment(), View.OnClickListener {

private lateinit var binding: FragmentWalkThroughBinding

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = FragmentWalkThroughBinding.inflate(inflater, container, false)
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

binding.walkThroughButton1.setOnClickListener(this)
}

override fun onClick(view: View?) {

val intent = Intent(activity, SettingActivity::class.java)
startActivity(intent)
}
}

以上です。

2021年振り返り

はじめに

2021年を振り返ります!
ちゃんと振り返らないと何もしてない気がするのよね。。

何やったかほとんど覚えていないので、Twitterをベースに振り返ってみようと思います。

VR体験日記その1

11/28(日) 1日目

夜子供が寝た後から自分が寝るまでの数時間を何とかしたくてVRを買ってみた。
ネット記事とかでVRはすごいとよく見てたので、どんなもんやろ?と前々から思っていた。

色々VR機器について調べた結果、Ocuras Quest 2を買った。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×