• 締切済み

listview とactivity について

android studio のアプリ制作でlistview とactivity についての使い方について、教えてください。初心者です。listview の画面と2つのactivities の遷移ぐらいだけは作成できます。 質問 : 20の国名をlistviewに並べて、各国名をクリックすれば、別の画面でその国の国旗の画像と簡単な説明文が読める内容です。新しいactivityを20個つくらずにする方法をわかりやすく教えてください。 ネットでずいぶん検索したんですが見当たりません。ある方から、”けんちんとん”さんというサイトを紹介されたのですが、少し古くかつeclipseなので設定が異なり、できませんでした。 初心者でわかりやすい動画やサイトが嬉しいのですが? よろしくお願いします。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

まず最初にAndroidアプリ開発に対してAndroid StudioとEclipseでできる事に違いはない。これはこの2つのツールが同じだと言っている訳ではなく、どちらで操作しても得られる結果が同じだという事だ。これは「abcde」という5文字が書き込まれたテキストファイルを1つ作るのにメモ帳だろうとサクラエディタだろうと最終的な結果は同じというのと同じ意味だ。 さて、一画面目のActivityにListViewを設置し、その中に20の項目を入れてタップさせ、その後で20個のActivityに分岐させているのは二画面目のActivityに固定で情報を書いているからだ。 今回はListViewで20個のアイテムの判別(←何が押されたか)は出来ているとしよう。 そうすると必要なことはおのずと分かってくる。二画面目のActivityにListViewで何がタップされたかを教える機能と、教えられたアイテムを元に二画面目の内容を切り替える機能だ。 これはズバリIntentのExtraというデータを用いると良い。 「Intent putExtra」でぐぐればいくらでも情報は出てくるので詳しい記述内容は省くが、Activity間でデータのやり取りをする場合はこのExtraというものにデータを仕込むというのが一般的だろう。 受け取ったデータ、最悪の場合ListViewのタップされたindexでもいいけど、一画面目からどんな内容を二画面目へ何を渡して、二画面目はどう表示を切り替えるか、そこはあなたが考えるべきことだ。 たとえば、Extraで2文字の国コード(jpとかusとか)を受け渡して、二画面目はその国コードを元に画像やテキストを切り替える、という動きになるかも知れない。 もしこの直前の内容(たとえば~のところ)を読んで、何を言っているのか分からない(具体的なコードが無いから)、のであれば、あなたはAndroid開発以前にプログラムを作るすなわちデータ構造を決めてアルゴリズムを練るという言語以前の基礎が出来ていないという事だ。

関連するQ&A

  • JAVA(Android)複数のActivity

    Mac用Eclipseを用いてアプリを制作しております。(始めて数週間の初心者です。) Activityを2つ以上実装し、インテントで画面遷移するまでは良いのですが、画面遷移後に元のActivityの動作が停止(リセット)してしまいます。画面遷移後も元Activityをバックグラウンドで動作させる方法はありますでしょうか? 具体的には、元Activityでタイマーを使用し、使用したまま画面遷移を行い、またActivityに戻すとタイマーが0になってしまいます。 解決方法が御座いましたら回答宜しくお願い致します。

    • ベストアンサー
    • Java
  • Androidアプリ Listviewが

    アドバイスください。初心者です。Listviewを作りたいだけなんです。”データがありません”と表示されてしまいます・・。 ●layout(.xml) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/android:empty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="データが存在しません"/> </LinearLayout> ●listview(.java) import android.app.Activity; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; //ListActivityを継承 import com.example.yamato.myapplication001.R; public class listview extends ListActivity { private String[] items = { "a10", "a11", "a21", "b10" }; //(2) // private String[] items = {};(2) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //リストビューを含むレイアウト指定(1) setContentView(R.layout.activity_main_activity001); // ArrayAdapterオブジェクトの生成 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); // Adapterの指定 setListAdapter(adapter); // ListActivity内部にあるListViewオブジェクトを取得する場合 ListView listView = getListView(); // ListViewオブジェクトを取得したので以下のメソッド等が利用できる // 選択する要素の位置の指定 listView.setSelection(3); } } ソースは参考本からです。

  • activityからviewクラスを呼び出すには?

    アンドロイドアプリを開発しているものですが、質問があります。 mainのactivityにボタンを表示させて、そのボタンが押されたらviewクラスを継承して自作したクラスScreenを呼び出したいと思っているのですが、うまくいきません。 Button btn = (Button)findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener(){ public void onClick(View view){                         Intent intent  =  new Intent(start.this , Screen.class) ;                                   startActivity(intent) ;           }           }               ) ; AndroidMainifest.xmlのActivityにも遷移先のクラス名を挿入していますので、問題がないはずなのですが、どなたか詳しい方お願い致します。 初心者なので、拙い説明で申し訳ありませんが、是非回答よろしくお願いいたします。

  • 【android開発】ヘッダ、フッタ固定方法

    Androidアプリ開発を始めたばかりの初心者です。 どう進めていくべきか悩んでるので、 相談させてください。 ヘッダ、フッタ固定で登録画面、更新画面、参照画面を作ったのですが、 登録、更新、参照とそれぞれActivity、XMLを作成した為、 実機で動かすと、画面遷移時にヘッダ、フッタが再表示されます。 遷移時もヘッダが再表示されず、 ボディ部のみ切り替えるようなやり方をする為には どう実現すればよいのでしょうか? 想像するには、 Activity、XMLを1つのみ作成し、 Activityで画面ごとにレイアウトを変更すればいいのかな・・・と考えているのですが、 良い案あれば教えてください。 宜しくお願いします。

  • Eclipseについて

    http://www.hp3200.com/android-app-development/ ↑こちらのサイトに沿ってアンドロイドのアプリを制作しようしています。 5.のところでEclipseを開こうと思ったら変な表示が出てしまいます。 どうすればよいのでしょうか。初心者ですのでわかりやすく回答していただけると嬉しいです。

  • Androidの画面遷移ができません(その2)

    前回の質問の続きです. 今度はページXXXXXから3つのボタン(AAAAA,BBBBB,CCCCCと仮定)を画面上に表示させ,ボタンに記載された通りの各ページAAAAA,BBBBB,CCCCCに画面遷移しようと考えています. AAAAA,BBBBB,CCCCCにはそれぞれ異なった画像が表示されるようにプログラミングしてあるのですが,すべてのボタンを押してもページAAAAAに画面遷移してしまい困っています. おそらくAndroidManifest.xmlの定義が間違えているのではないかと思っているのですが,どこに原因があるのでしょうか?解答よろしくお願いします. 【AndroidManifest.xml】 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sample.XXXXX" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="9" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".XXXXX" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="AAAAA"></activity> <activity android:name="BBBBB"></activity> <activity android:name="CCCCC"></activity> </application> </manifest>

  • eclipse-android(複数画面遷移)

    eclipseを使用してandroidアプリを作成しています。 画面遷移について ボタンを使用して3画面以上の遷移を行いたいのですが、 うまくいきません。 main->sub1とsub1->mainまでの遷移はできていますが、 main->sub1->sub2の画面遷移がどうしてもうまく行きません。 ググっても3画面以上の遷移方法がでていなく、 困っています。ご教授下さい。 javaとマニフェスト、string.xml細かく教えて下さい。

  • androidアプリを作成~画面遷移~

    eclipseでAndroidアプリを作成しようとしています。 ボタンを使用して3画面の画面遷移をさせたいのですが なかなかうまくいきません(汗) main->sub1までの画面遷移 sub1->mainまではできまるようになったのですが ググってもmain->sub1->sub2 と遷移させることができませんでした。 main->sub1->sub2 と遷移させた上で sub1からもsub2からもmainに 戻れるようなjavaとマニフェストをできるだけ細かく教えていただきたいのですが、 ご教授下さい。

  • Androidアプリ・SDKでの実行時エラー

    初めてアンドロイドアプリの開発をしています(多言語のプログラミング経験はありますが、JAVAは初めてです)。Eclipseで開発を行っていますが、ボタンをクリックしたら画面遷移をする、という処理を追加したところ、Android SDKで実行した際に 「アプリ名(パッケージ名)が予期せず停止しました。やり直してください。」 と出て、トップの画面も表示されなくなってしまいました。なお、Eclipse上ではエラーなどが出ていません。原因が解らず困っています。何かわかる方がいらっしゃいましたらお教え下さい。 以下がソースになります。 ■トップのActivity--------------------- package jp.xxxxx.xxxxx; 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 { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //ボタンを定義 Button btn1 = (Button) findViewById(R.id.btn1); //クリックイベント btn1.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent intent = new Intent( getApplicationContext() , SubActivity.class); startActivity(intent); } }); } } ■トップ画面のXML--------------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"> <ImageView android:id="@+id/topLogo" android:src="@drawable/logo" /> <LinearLayout android:id="@+id/linearLayout1"> <TextView android:id="@+id/btn1" android:text="@string/btn1text"></TextView> </LinearLayout> </LinearLayout> ■トップのAndroidManifest.xml--------------------- <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.xxxxx.xxxxx" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:label="@string/app_name" android:name="MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:label="@string/screenName2" android:name="SubActivity"> </activity> </application> </manifest> なお、Activityの「//ボタンを定義」以下をコメントアウトした際には画面は出てきます。何か初歩的な間違いをしているかもしれませんが、どうかよろしくお願いします。

    • ベストアンサー
    • Java
  • eclipse でのPHPのデバッグの仕方について

    PHPの勉強をしております、PHP初心者です。 Eclipse でのデバッグのやり方を質問させてくだい。 ステップ実行によるデバッグができないかと eclipse + PDT という開発環境をつくっています。 そこで質問なのですが、 一番初めの画面(PHPファイル)でのデバッグは その画面を選択して、 デバッグ→PHP Webアプリケーション  の手順で行なえています。 これは問題ないと思うのですが 例えば、遷移元の画面(HTMLファイル)から遷移先の画面(PHPファイル)に form から値が渡されるといった場合、 どのようにデバッグすればいいのでしょうか? いま、私は、遷移元のHTMLファイルを選択し アプリケーションから開く→Web ブラウザー の手順でひらき、遷移先の画面にいくのですが 遷移先のPHPファイルにブレークポイントを設定しても とまりません。 このやり方であっているのでしょうか? 遷移先画面を直接選択し デバッグ→PHP Webアプリケーション  の手順で行なってもそもそも遷移元画面を経ていないので 値がわたされてこないので意味がありません。 画面遷移がある場合の、値の受け渡しがある場合の デバッグをやり方を教えてください。

    • 締切済み
    • PHP

専門家に質問してみよう