DialogFragment.onCreateDialog

DialogFragmentで、ダイアログを作る方法は2種類ある。
ひとつは、onCreateViewでダイアログ内部のレイアウトを作りViewを返すというもの。
strings.xmlで、

ActivityのButton1、Fragmentの中のButton1、TextView1。
fragment_custom_dialog.xmlで、

Fragment側にTextViewとButtonを配置。
activity_main.xmlで、

Activity側はButtonだけ。
CustomDialogFragment.javaで、

package com.bgstation0.android.sample.dialogfragment_;

import android.app.DialogFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class CustomDialogFragment extends DialogFragment {

	// ビュー生成時.
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
		
		// レイアウトからビュー生成.
		return inflater.inflate(R.layout.fragment_custom_dialog, container);	// infalter.inflateでR.layout.fragment_custom_dialogを元にビューを作成し, 返す.
		
	}
	
}

onCreateView内で、R.layout.fragment_custom_dialogから、Viewを作成して返す。
(onCreateViewはDialogFragment派生じゃなくて、Fragment派生なのね。)
MainActivity.javaで、

CustomDialogFragmentにしたぐらいで変わってない。

起動時
起動時

起動時。
Buttonを押すと、

レイアウトに指定したTextView1とButton1が配置されたダイアログ
レイアウトに指定したTextView1とButton1が配置されたダイアログ

レイアウトに指定したTextView1とButton1が配置されたダイアログが表示される。
Button1は押しても何も起きない。

もうひとつの方法は、onCreateDialogの中で、AlertDialogでもDialogでも生成して、返すというもの。

DialogFragment  |  Android Developers

onCreateDialogを使う場合、

onCreateViewはコメントアウト
AlertDialogにして、PositiveButton押されたら"OK"とToast表示。

起動時
起動時

起動時。
Button押すと、

レイアウト関係なくしっかりとしたAlertDialog
レイアウト関係なくしっかりとしたAlertDialog

レイアウト関係なくしっかりとしたAlertDialog。
OK押すと、

"OK"とToast表示
"OK"とToast表示

ダイアログが閉じられて、"OK"とToast表示。

Sample/android/DialogFragment/onCreateDialog/src/DialogFragment at master · bg1bgst333/Sample · GitHub

DialogFragment.show

DialogFragment.showで、ダイアログを表示する。

DialogFragment  |  Android Developers

DialogFragmentは継承することが多いが、継承しなくても一応表示できる。
strings.xmlで、

ここでもButton1。
activity_main.xmlで、

Button1配置。
MainActivity.javaで、

showには、getFragmentManagerで得たFragmentManagerオブジェクトとタグ文字列を渡す。

起動時
起動時

起動時。
Button1をクリックで、

やはりレイアウトが無いのでこうなる
やはりレイアウトが無いのでこうなる

やはりレイアウトが無いのでこうなる。

Sample/android/DialogFragment/show/src/DialogFragment at master · bg1bgst333/Sample · GitHub

Dialog

Dialogについてやってなかったので、ここで。
まあ、ダイアログだけなら、AlertDialogである必要は無いみたい。

Dialog  |  Android Developers

strings.xmlで、

テキストはButton1。
activity_main.xmlで、

Button1を配置。
MainActivity.javaで、

onCreateDialogでDialogオブジェクトを生成して返して、Button1がクリックされたら、showDialogだけ。

起動時
起動時

起動時。
Button1をクリックすると、

レイアウトが無くても一応ダイアログはこうやって出る。
レイアウトが無くても一応ダイアログはこうやって出る。

レイアウトが無くても一応ダイアログはこうやって出る。

Sample/android/Dialog/Dialog/src/Dialog at master · bg1bgst333/Sample · GitHub

ListFragment.onListItemClick

ListFragmentもonListItemClickでクリック処理。

ListFragment  |  Android Developers

CustomListFragment.javaで、

Toast.makeTextの第1引数に指定するものは、ListActivityはthisだったが、ListFragmentの場合はgetActivity。

起動時
起動時

起動時。
一番上をクリックで、

"Taro"と出る
"Taro"と出る

"Taro"と出る。

Sample/android/ListFragment/onListItemClick/src/ListFragment at master · bg1bgst333/Sample · GitHub

ListActivity.onListItemClick

ListActivityにおいては、onListItemClickで、アイテムクリック時の処理をする。

ListActivity  |  Android Developers

MainActivity.javaで、

onListItemClickをオーバーライドして、Toast表示。
引数にListViewのlが渡されるので、l.getItemAtPositionを使ってアイテム取得。

起動時
起動時

起動時。
真ん中のSaburoをクリック。

"Saburo"が出る
"Saburo"が出る

"Saburo"が出る。

Sample/android/ListActivity/onListItemClick/src/ListActivity at master · bg1bgst333/Sample · GitHub

AdapterView.getItemAtPosition

AdapterView.getItemAtPositionで、指定したpositionのアイテムオブジェクトを取得する。

AdapterView  |  Android Developers

MainActivity.javaで、

parentの正体はlistview1。
parent.getItemAtPositionにpositionを指定。
Stringのリストなので、StringでキャストしてToast表示。

起動時
起動時

起動時。
真ん中のitem2をクリックすると、

item2と出る
item2と出る

"item2"と出る。

Sample/android/AdapterView/getItemAtPosition/src/AdapterView at master · bg1bgst333/Sample · GitHub

AdapterView.OnItemClickListener

MainActivityにAdapterView.OnItemClickListenerを実装するという方法もある。

AdapterView.OnItemClickListener  |  Android Developers

MainActivity.javaで、

implements AdapterView.OnItemClickListenerとして、別にしたonItemClickに処理を書く。
でlistview1.setOnItemClickListenerにはthisをセット。

起動時
起動時

起動時。
今度は一番上のitem1をクリック。

positionは0
positionは0

positionは0。

Sample/android/AdapterView.OnItemClickListener/AV.OICL at master · bg1bgst333/Sample · GitHub