Androidの学習をはじめて9日くらいの人の問題集

Android

LinkedHashMapとListView、複数のActivityを行き来するIntentを練習します。

Q1
リストビューを使い都道府県の一覧を表示する。
項目をクリックすると画面遷移し、その都道府県の県庁所在地を表示する。
Backボタンで戻れるようにすること。
作成のさいには以下のMapを使っていよい。

        Map<String,String> prefData=new LinkedHashMap<>();
        prefData.put("北海道(ほっかいどう)","札幌(さっぽろ)");
        prefData.put("青森県(あおもり)","青森(あおもり)");
        prefData.put("岩手県(いわて)","盛岡(もりおか)");
        prefData.put("宮城県(みやぎ)","仙台(せんだい)");
        prefData.put("秋田県(あきた)","秋田(あきた)");
        prefData.put("山形県(やまがた)","山形(やまがた)");
        prefData.put("福島県(ふくしま)","福島(ふくしま)");
        prefData.put("茨城県(いばらき)","水戸(みと)");
        prefData.put("栃木県(とちぎ)","宇都宮(うつのみや)");
        prefData.put("群馬県(ぐんま)","前橋(まえばし)");
        prefData.put("埼玉県(さいたま)","さいたま");
        prefData.put("千葉県(ちば)","千葉(ちば)");
        prefData.put("東京都(とうきょう)","東京(とうきょう)");
        prefData.put("神奈川県(かながわ)","横浜(よこはま)");
        prefData.put("新潟県(にいがた)","新潟(にいがた)");
        prefData.put("富山県(とやま)","富山(とやま)");
        prefData.put("石川県(いしかわ)","金沢(かなざわ)");
        prefData.put("福井県(ふくい)","福井(ふくい)");
        prefData.put("山梨県(やまなし)","甲府(こうふ)");
        prefData.put("長野県(ながの)","長野(ながの)");
        prefData.put("岐阜県(ぎふ)","岐阜(ぎふ)");
        prefData.put("静岡県(しずおか)","静岡(しずおか)");
        prefData.put("愛知県(あいち)","名古屋(なごや)");
        prefData.put("三重県(みえ)","津(つ)");
        prefData.put("滋賀県(しが)","大津(おおつ)");
        prefData.put("京都府(きょうと)","京都(きょうと)");
        prefData.put("大阪府(おおさか)","大阪(おおさか)");
        prefData.put("兵庫県(ひょうご)","神戸(こうべ)");
        prefData.put("奈良県(なら)","奈良(なら)");
        prefData.put("和歌山県(わかやま)","和歌山(わかやま)");
        prefData.put("鳥取県(とっとり)","鳥取(とっとり)");
        prefData.put("島根県(しまね)","松江(まつえ)");
        prefData.put("岡山県(おかやま)","岡山(おかやま)");
        prefData.put("広島県(ひろしま)","広島(ひろしま)");
        prefData.put("山口県(やまぐち)","山口(やまぐち)");
        prefData.put("徳島県(とくしま)","徳島(とくしま)");
        prefData.put("香川県(かがわ)","高松(たかまつ)");
        prefData.put("愛媛県(えひめ)","松山(まつやま)");
        prefData.put("高知県(こうち)","高知(こうち)");
        prefData.put("福岡県(ふくおか)","福岡(ふくおか)");
        prefData.put("佐賀県(さが)","佐賀(さが)");
        prefData.put("長崎県(ながさき)","長崎(ながさき)");
        prefData.put("熊本県(くまもと)","熊本(くまもと)");
        prefData.put("大分県(おおいた)","大分(おおいた)");
        prefData.put("宮崎県(みやざき)","宮崎(みやざき)");
        prefData.put("鹿児島県(かごしま)","鹿児島(かごしま)");
        prefData.put("沖縄県(おきなわ)","那覇(なは)");


[実行例]

スタート画面

項目をクリックすると画面遷移して、県庁所在地をっ表示する。

Backボタンを押すと最初の画面に戻る。

●activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <ListView
        android:id="@+id/lv"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>



●MainActivity.java


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Map<String,String> prefData=new LinkedHashMap<>();
        prefData.put("北海道(ほっかいどう)","札幌(さっぽろ)");
        prefData.put("青森県(あおもり)","青森(あおもり)");
        prefData.put("岩手県(いわて)","盛岡(もりおか)");
        prefData.put("宮城県(みやぎ)","仙台(せんだい)");
        prefData.put("秋田県(あきた)","秋田(あきた)");
        prefData.put("山形県(やまがた)","山形(やまがた)");
        prefData.put("福島県(ふくしま)","福島(ふくしま)");
        prefData.put("茨城県(いばらき)","水戸(みと)");
        prefData.put("栃木県(とちぎ)","宇都宮(うつのみや)");
        prefData.put("群馬県(ぐんま)","前橋(まえばし)");
        prefData.put("埼玉県(さいたま)","さいたま");
        prefData.put("千葉県(ちば)","千葉(ちば)");
        prefData.put("東京都(とうきょう)","東京(とうきょう)");
        prefData.put("神奈川県(かながわ)","横浜(よこはま)");
        prefData.put("新潟県(にいがた)","新潟(にいがた)");
        prefData.put("富山県(とやま)","富山(とやま)");
        prefData.put("石川県(いしかわ)","金沢(かなざわ)");
        prefData.put("福井県(ふくい)","福井(ふくい)");
        prefData.put("山梨県(やまなし)","甲府(こうふ)");
        prefData.put("長野県(ながの)","長野(ながの)");
        prefData.put("岐阜県(ぎふ)","岐阜(ぎふ)");
        prefData.put("静岡県(しずおか)","静岡(しずおか)");
        prefData.put("愛知県(あいち)","名古屋(なごや)");
        prefData.put("三重県(みえ)","津(つ)");
        prefData.put("滋賀県(しが)","大津(おおつ)");
        prefData.put("京都府(きょうと)","京都(きょうと)");
        prefData.put("大阪府(おおさか)","大阪(おおさか)");
        prefData.put("兵庫県(ひょうご)","神戸(こうべ)");
        prefData.put("奈良県(なら)","奈良(なら)");
        prefData.put("和歌山県(わかやま)","和歌山(わかやま)");
        prefData.put("鳥取県(とっとり)","鳥取(とっとり)");
        prefData.put("島根県(しまね)","松江(まつえ)");
        prefData.put("岡山県(おかやま)","岡山(おかやま)");
        prefData.put("広島県(ひろしま)","広島(ひろしま)");
        prefData.put("山口県(やまぐち)","山口(やまぐち)");
        prefData.put("徳島県(とくしま)","徳島(とくしま)");
        prefData.put("香川県(かがわ)","高松(たかまつ)");
        prefData.put("愛媛県(えひめ)","松山(まつやま)");
        prefData.put("高知県(こうち)","高知(こうち)");
        prefData.put("福岡県(ふくおか)","福岡(ふくおか)");
        prefData.put("佐賀県(さが)","佐賀(さが)");
        prefData.put("長崎県(ながさき)","長崎(ながさき)");
        prefData.put("熊本県(くまもと)","熊本(くまもと)");
        prefData.put("大分県(おおいた)","大分(おおいた)");
        prefData.put("宮崎県(みやざき)","宮崎(みやざき)");
        prefData.put("鹿児島県(かごしま)","鹿児島(かごしま)");
        prefData.put("沖縄県(おきなわ)","那覇(なは)");

        ListView lv=(ListView)findViewById(R.id.lv);
        final List<String> list=new ArrayList<>();
        for(String key:prefData.keySet()){
            list.add(key);
        }
        ArrayAdapter<String> adapter=new ArrayAdapter(
                this,
                android.R.layout.simple_list_item_1,
                list
        );
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent i=new Intent(MainActivity.this,SubActivity.class);
                String pref=list.get(position);
                i.putExtra("capital",prefData.get(pref));
                startActivity(i);
            }
        });

    }
}


●activity_sub.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:id="@+id/tvResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="TextView"
        android:textSize="30sp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:onClick="btBack"
        android:text="Back"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tvResult" />
</android.support.constraint.ConstraintLayout>

●SubActivity.java


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class SubActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);
        Intent i= this.getIntent();
        String capital=i.getStringExtra("capital");
        TextView tvResult=(TextView)findViewById(R.id.tvResult);
        tvResult.setText(capital);
    }
    public void btBack(View v){
        this.finish();
    }
}


コメント

タイトルとURLをコピーしました