さまよえる、Android

Androidのプログラミングで便利なことや残しておきたいことを残しておく。もしオススメのライブラリがあったら教えてくださいね。

ついつい、マスターブランチにコードを書いてしまったときの対応

ブランチを切って作業を始めるべきところで
ついつい、マスターブランチにコードを書いてしまう。

たとえば、アプリのリリース後に
ブランチを切らずにマスターブランチ上で作業をしていたら
リリースしたアプリに不具合があって、リリース時のアプリの状態に
戻れないような時があった。

リリース -> コミット① -> コミット② ->コミット③ -> 作業中にリリースアプリ不具合発見

とりあえず作業中の状態でコミットする。

新規ブランチを作成する

f:id:araiyusukej:20170526011947p:plain

AndroidStudioではブランチを新規作成すると
切り替わってしまうので、またマスターブランチに戻る。


f:id:araiyusukej:20170526012352p:plain

戻りたい場所のログで右クリックして

f:id:araiyusukej:20170526012722p:plain

f:id:araiyusukej:20170526012614p:plain

作業中に戻りたい時は、先ほど作成したブランチをチェックアウトすればOK。

AndroidからMacのlocalhostにアクセスする。

アプリからlocalhostに接続したい

MacApacheをインストールしてテストサーバーを構築し、Androidアプリからアクセスしたい
しかし、localhostにアクセスできない。

出来る

ぐぐったら解決できた。AndroidをUSBでMacに接続し、Chromeに下のURLを入力する。

Macchrome

chrome://inspect/#devices

AndroidChromeを起動

端末名が表示される

f:id:araiyusukej:20170327095632p:plain

設定

localhost:8080に設定し、Androidのコードのドメインlocalhost:8080に変更

AndroidMac両方のChromeを起動しておけば、Androidのアプリからlocalhostにアクセスすることができるようになる。

RatingBarの実装

アクティビティ

public class MainActivity extends AppCompatActivity  implements RatingBar.OnRatingBarChangeListener {

    RatingBar mRatingBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRatingBar = (RatingBar) findViewById(R.id.rating);
        mRatingBar.setOnRatingBarChangeListener(this);
        //最大星数
        mRatingBar.setNumStars(6);
        // ステップ
        mRatingBar.setStepSize(1);
        // レーティングをセットする
        mRatingBar.setRating(3);
    }

    @Override
    public void onRatingChanged ( RatingBar ratingBar, float rating, boolean fromUser ) {
        Toast.makeText(getApplicationContext(),
                String.valueOf(ratingBar.getRating()), Toast.LENGTH_SHORT).show();
    }

}

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="jp.co.araiyusuke.ratingbar.MainActivity">
    <RatingBar
        android:id="@+id/rating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>