http://www.jp.playstation.com/info/support/sp_20100903_psn.html
「自分のPSNアカウントのウォレットに知らない間にチャージが行われた」
「自分のPSNアカウントから知らない間にゲームが購入された形跡がある」
「自分のPSNアカウントに登録済のクレジットカードに身に覚えのない請求が来た」といったお問い合わせを頂いております。
価格コムに被害者が現れる。
http://bbs.kakaku.com/bbs/20504010112/SortID=11827535/
昨日、PSストアーのウォレットが
無断でチャージされました。
残高、700Pあったのですが、チャージ残高の上限、20000Pまでの
19300Pチャージされました。
が、発見が早かったのかウォレットをチャージされただけで
消費された形跡は有りません。
チャージ確認メールがPCに届き気づいたのですが、
ここ、1・2ヶ月はPS3を起動していません。
また、家族・友人などもIDやパスワードを教えていません。
また、自動でのウォレットの消費するソフトやサービスは、
登録していません。
ゲハコピペブログのJIN、アカウントハックはJailbreakのせいだという記事を投下。
http://jin115.com/archives/51706389.html
【簡易まとめ】
PSNアカウントハック騒動発生
↓
先日のPS3ハッキング(ジェイルブレイク)が原因のウイルスだった。
↓
割れ厨涙目、PSNセキュティは万全だった。
真に受けてうっかり「明らかになりました」なんて断言したりする人が現れる。
ソニーvs任天堂
ソースはこちら
http://www.jp.playstation.com/info/support/sp_20100903_psn.html
http://news.livedoor.com/article/detail/4983209/
取り上げるつもりはなかったのですが、気になる情報だと思うので・・・
PSNについてSCEJから重要なお知らせが。
これの真相は、USBからハックできるというPS3ジェリルブレイクだった
ことが明らかになりました。USBドングルに、トロイの木馬が
仕込まれていたようです。しかし、これが波及する可能性は否定できないので
危ないと思っている方はカードを削除することも検討されてもいいかもしれません。
トロイの木馬は偽の脱獄ツールに仕込まれた『PCに感染する』ウイルスで、PS3そのものには感染せず、PSNの情報は引き出せない。
Jailbreakとは無関係なことが判明。
ということで上記ブログに以下のようなコメントを投下した。
> 明らかになりました
などと断言するのはどうかと思います。
ブログ主、記事を削除して逃亡。
http://mgs4mario.blog111.fc2.com/blog-entry-4054.html
削除だけで訂正も謝罪もなしという無責任さ。
私もうろ覚えで間違った記事を書いてしまったことはありますが、だからといって何もなかったかのように削除して知らんぷりとか恥ずかしいとは思わないんですかね。
たまたま上記ブログにだけコメントを行ったので記事にしてみましたが、コピペブログの妄言を真に受けて馬鹿な発言をしてしまう人ってのは残念ながらいっぱいいたりします。
twitterは普段から有名人が失言してしまう場として有名ですが、無名人でもうっかり愚かな発言をしてしまいがちですね。
ところで最初の発端となったアカウントハックについては、現在も原因不明です。
#勿論この記事もトラバ送ってます、と言いたいところだったんですが残念ながらトラバ受け付けていないようです。
#トラバできないブログって意味あるんですかね。
2010/09/06 追記
トラバできないのでかわりにこちらのコメント欄にコメントを投稿しました。
http://mgs4mario.blog111.fc2.com/blog-entry-2591.html#comment_list
私もうろ覚えで間違った記事を書いてしまったことはありますが、だからといって何もなかったかのように削除して知らんぷりとか恥ずかしいとは思わないんですかね。
これもまた削除ですか?
見事に削除でした。
ナポレオンを倒したワシの冷気じゃ!
https://www.digiturbo.co.jp/comiket2010s/index.php?cmd=form&action=haruchan
»春ちゃんの気象豆知識キャラクターガイドブック
»春ちゃんの気象豆知識Tシャツ(フリーサイズ)
»冬将軍の冷気うちわ
»特製クリアファイル
»特製紙袋
正直、3500円(送料込4000円)でこれは少々高い。
コール オブ デューティ モダン・ウォーフェア2 スクウェア・エニックス
☆☆☆
オフクリア。
MW1が相当すごかったので買ってみたが、やはり戦闘そのものはすごい。
和訳が残念という声が多いみたいだけど、それよりストーリー自体が残念だった。
前作のストーリーは筋が通ってたと思うんだけど、今回のは何故そうなる?という展開がなあ。
演出とかは素晴らしいのに、いまいち前作ほど感情移入できず残念。
戦闘中周囲の兵士の台詞がフル日本語なのはありがたかった。
「右から敵だ!」とか。
ただ「12時方向から敵だ!」とか「北から敵だ!」とか言われても方角がわからない。
そういえばマカロンどうなったんだ。
奈々子さんの戯曲 Nの悲劇と縛られた僕 高木 敦史
☆☆☆☆
発売前にWebで全文公開、という暴挙に感心したので全く読んでないけど購入してみた。
6ページ目でああ、これはあれだな、と思ったら見事に外してた。
後一歩を追い切れなかった実に見事なオチでした。
登場人物がどいつもこいつも不快なんだけど、なんとも微妙にリアリティがある不快さなのがさらに不快なかんじだ。
ただまあさすがに小学生レベルではどうなんだろうという気はする。
もう3年ほど年を取っていれば違和感はなかっただろうと思われる。
いやしかし表紙は見事ですな。
なごみさん1 宮本 福助
☆☆☆☆
その昔エンジェル伝説って傑作があってだな。
まあとにかく物凄い極道顔なのに名前が和(なごみ)な店主の喫茶店経営もの。
基本的にそのギャップだけを軸としたわかりやすいギャグ漫画です。
最終話のオチは笑った。
お花ちゃん黒が二箇所死んでるんだが。
殿といっしょ5 大羽 快
☆☆☆
戦国武将を概ね歴史に沿ったような気がしないでもないアレげな視点で再評価する漫画。
今巻の表紙はエロ本もラノベも少女漫画も平気で買える私が買うのをかなり躊躇しました。
実は戦国武将ってあんまり詳しくないので元ネタが全然わからなかったり。
なので歴史的な評価がどうなのかはよくわかりません。
そういやまだDVD見てなかった。
荒川アンダーザブリッジ6 中村 光
☆☆☆
ニノの人外描写は時折あったけどだいたいがギャグでした。
今回ついにはっきりとした形で現れます。
いやー、金星に水って無いんじゃないか?
http://
http://
Just saw this on my release list from D3:
EARTH DEFENSE FORCE 2017 INSECT ARMAGEDDON!!!
coming February on XBOX 360.
HOLY FUCKING AWESOME!!!
E・D・F! E・D・F!
前回の続き。
前、名刺一覧画面にメニューを実装しましたが、今回は名刺詳細画面にメニューを実装し、詳細編集画面への遷移を作成してみます。
基本は同じですが、今回はアクティビティ呼び出し部分がstartActivity()ではなくstartActivityForResult()になっているところが違います。
/res/menu/show.xml
<?xml version="1.0" encoding="utf-8" ?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 編集メニュー --> <item android:id="@+id/menu_edit" android:title="@string/menu_edit" android:icon="@android:drawable/ic_menu_edit" /> </menu>
/src/com.example.bizcard/ShowActivity.java
/**
* オプションメニューの生成
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.show, menu);
return true;
}
/**
* オプションメニューをクリックした
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
// 更新
case R.id.menu_edit:
// 現在表示しているBizCardを詰めてRegistActivityを実行
Intent registIntent = new Intent( this, RegistActivity.class);
registIntent.putExtra( BizCard.TABLE_NAME, bizCard);
startActivityForResult( registIntent, -1);
}
return true;
};
/**
* startActivityForResult()で飛んでった先から戻ってきた
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if( resultCode == RESULT_OK){
// 表示を更新する
BizCardDao dao = new BizCardDao( this);
bizCard = dao.load( bizCard.getRowid());
updateView();
}
}
オプションメニューは他のメソッド類とは独立しているので単に追加するだけです。
onCreateOptionsMenu()にて作成した/res/menu/show.xmlをセット。
onOptionsItemSelected()でIDをチェックし、クリックされたのが"@+id/menu_edit"であればRegistActivityを実行。
ここで実行時にstartActivityForResult()を使用すると、移動先から戻ってきた際にonActivityResult()が実行されます。
onActivityResult()では単に返却値=RESULT_OKであればリロードを行っているだけです。
RESULT_OKという定数がいきなり登場しますが、Activity.RESULT_OKで定義されています。
他にRESULT_CANCELEDとRESULT_FIRST_USERが予め用意されているので、返り値としてこれを使用するのがわかりやすいでしょう。
で、RESULT_FIRST_USERってどういう意味だ?
startActivityForResult()の第二引数-1がわからないんですが何これ。
単に使わないから適当な値入れてるだけ?
Androidの記事
前@overrideアノテーションを正しく使っているにもかかわらずエラーになるということがありました。
原因は@overrideアノテーションがJDK1.6から拡張されたことです。
それまでは@overrideはextendsしたクラスのメソッドにしか使えなかったのですが、1.6からはインターフェイスにも使用できるようになりました。
つまり古いコンパイラのまま使用しているみたいです。
JDK1.6はインストールしてあるはずなのにおかしいな。
「ウィンドウ→設定→Java→コンパイラー→コンパイラー準拠レベル」でJDKを選択することができます。
比較的新しい版を使用していたつもりだったのですが、何故か1.5に設定されていました。
ここを1.6にすることで、@overrideの新しい使用法にも対応することができるようになりました。
インターフェイスはそもそもoverrideしていないとエラーになるので@overrideアノテーションの意味はあんまり無いような気もするのですがね。
他のアノテーションはコンパイラ向けなのに対してインターフェイス用@overrideは開発者向けっぽいですね。
Androidの記事
新宿駅構内に菓か舎の店舗があります。
http://www.kakasha.com/
店頭に↓の記事が張り出されていました。
http://www.asahi.com/food/column/betsubara/OSK201008120041.html
ということでマスカルポーネ北海道を買ってみました。
見た目壮絶に甘くてもたれそうなんですが、実際食べてみると全然そんなことはありません。
口の中でさっと溶けて後味がいつまでも残りません。
非常に美味でした。
STEINS;GATE─シュタインズゲート─ 円環連鎖のウロボロス1 海羽 超史郎
☆☆☆☆
神ゲーのノベライズというとEver17の悪夢なわけで、まったく期待しないように期待して読んだ。
期待を裏切られた。
かーなーりレベル高い。
初プレイ時の記憶がついつい思い起こされてしまうできばえです。
基本的には原作の文体そのままですが、ストーリーは一部変わっているところがあります。
大きなところでは一番最初のモノローグがありません。
細かなところでは色々。
まあ細々過ぎて見比べないとはっきりとはわからないですが。
特に気になるのは着地点の時間がずれているように見えるところ。
原作ではこんな描写はなかったはずなので、どう収拾をつけてくれるのかが楽しみだ。
フェイリスやるかについては量的制限上どうしても描写が少なくなってしまっているのが少々残念ですがまあ仕方ありません。
ていうか性別変わってないのか?デートどうすんだ?
最後は予想通り例のあのシーンで終わっています。
今後の展開に非常に期待大。
さよなら絶望先生22 久米田 康治
☆☆☆☆
例によって相変わらずの金太郎飴漫画22巻。
隅々まで細かなネタで埋め尽くされていていつまでも読み切れません。
カタログからついにおしゃれ先生リストラ。コランて何?
しかし、おまけまんがの晴美はなんでこんなに可愛いんだ。
ハヤテのごとく25 畑 健二郎
☆☆☆
アテネ編完結+アパート編開始。
これまで謎に包まれていたハヤテの兄が描かれます。
つうかこんなにパーフェクトなのに何故さっさと絶縁しなかったのかが疑問だ。
で、紫子とか愛歌とかルカとかはいつか伏線解けるのか?
ハヤテのごとくの前 畑 健二郎
☆☆☆
ハヤテの表紙カバー下に出ていた謎キャラの正体が遂に判明。
ということでハヤテより前に書かれた短編集です。
すっかり出番のなくなったギルバートや、それ以外にもなんとなく見覚えのある姿がちらほら。
ハヤテのルーツっぽいものがここにあるようなないような。
「絵とかがその…昔っていうか…」
大丈夫、今もたいして変わってないから。
しかしこの二人(久米田と畑)はいつも単行本がおまけ満載でありがたいですね。
荒川アンダーザブリッジ5 中村 光
☆☆☆
これまでモブだった侍とかオウムとか、唐突極まりない地球防衛軍代表とかカオスな登場人物が増えすぎてどうするのな5巻。
そしてこれまで妄想以外の何物でもなかった金星人設定について、ほんの僅かですが物的証拠が。
前回の続き。
現在、一覧画面から各名刺をクリックするとShowActivityが起動し、クリックしたBizCardオブジェクトがインテントで渡されるようになっています。
ShowActivityはテンプレートを作っただけでロジックは何もしていませんでしたので、インテントから投稿内容を受け取るようにしてみましょう。
/src/com.example.bizcard/ShowActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
// Intentに入れられたBizCardオブジェクトを取得
bizCard = (BizCard)getIntent().getSerializableExtra( BizCard.TABLE_NAME);
// UI部品の取得
personNameLabel = (TextView)findViewById( R.id.personNameLabel);
companyNameLabel = (TextView)findViewById( R.id.companyNameLabel);
organizationNameLabel = (TextView)findViewById( R.id.organizationNameLabel);
positionNameLabel = (TextView)findViewById( R.id.positionNameLabel);
addressLabel = (TextView)findViewById( R.id.addressLabel);
tel1Label = (TextView)findViewById( R.id.tel1Label);
tel2Label = (TextView)findViewById( R.id.tel2Label);
mailLabel = (TextView)findViewById( R.id.mailLabel);
// 表示内容の更新
updateView();
}
private void updateView(){
//各部品にbizCardを突っ込んでるだけ
personNameLabel.setText( bizCard.getPersonName());
companyNameLabel.setText( bizCard.getCompanyName());
organizationNameLabel.setText( bizCard.getOrganizationName());
positionNameLabel.setText( bizCard.getPositionName());
tel1Label.setText( bizCard.getTel1());
tel2Label.setText( bizCard.getTel2());
mailLabel.setText( bizCard.getMail());
addressLabel.setText( bizCard.getAddress());
}
Activity.getIntent()で渡されたインテントオブジェクトを取得します。その後は、Intent.putExtra()時に使用したメソッドに対応する取得メソッドで中身を取り出すことができます。
今回はSerializableなオブジェクトBizCardを突っ込んだのでgetSerializableExtra()で取り出せます。
この取得するメソッド、取り出す型によって使い分けが必要です。
文字列だったらgetStringExtra()だったり数値であればgetIntExtra()等です。
突っ込むときにはputExtra()が大量にオーバーロードされており、個別のputStringExtra()やputIntExtra()なんかは存在しないのに、何故かgetExtra()はありません。
さらに何故かgetIntegerArrayListExtra()には特別にputStringArrayListExtra()が用意されていたりするという。
何故こんな非対称な作りになってるんでしょうか。
どうにかして取り出せれば、後は普通にBizCardオブジェクトとして扱うことができます。
これで名刺をクリックすると詳細が表示されるようになりました。
なお、電話番号やメールアドレスには自動的にリンクが張られています。
これはandroid:autoLinkによるもので、android:autoLink="phone"とだけ書いておくと、それっぽい文字列に自動的にリンクが張られ、該当のリンクをクリックしたら自動的に電話が立ち上がります。
http://developer.android.com/intl/ja/reference/android/widget/TextView.html
"web"や"email"等一部の機能だけですが、わざわざリスナーを用意したりしなくても別アプリを起動できる便利な属性です。
さて、本来なら住所部分にandroid:autoLink="map"を指定するとGoogleMapを使えるのですが、残念ながら"map"は日本語に対応していません。
ていうか" The White House 1600 Pennsylvania Avenue, NW Washington, DC 20500 "って入れても駄目だったのでなんか使い方がおかしいのかもしれませんが。
ということで任意にリンクを作成したいと思いますが、それにはSpannableStringを使用します。
元々文字列を修飾するクラスらしいのですが、SpannableString.setSpan()とTextView.setMovementMethod()でリンクを踏んだときの行き先を設定することができます。
updateView()を修正。
private void updateView(){
personNameLabel.setText( bizCard.getPersonName());
companyNameLabel.setText( bizCard.getCompanyName());
organizationNameLabel.setText( bizCard.getOrganizationName());
positionNameLabel.setText( bizCard.getPositionName());
tel1Label.setText( bizCard.getTel1());
tel2Label.setText( bizCard.getTel2());
mailLabel.setText( bizCard.getMail());
//addressLabel.setText( bizCard.getAddress());
//住所をStringとして取得
String address = bizCard.getZipCode() + " " + bizCard.getAddress();
// SpannableStringインスタンスにセット
SpannableString addressSpan = new SpannableString( address);
// スタイルとしてAddressSpanをセット
addressSpan.setSpan(new AddressSpan(), 0, address.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ベタテキストのかわりに、SpannableStringテキストをセット
addressLabel.setText( addressSpan);
// ClickableSpan.onClick()を呼び出すための決まり文句みたい
addressLabel.setMovementMethod( LinkMovementMethod.getInstance());
}
//住所のクリック時に呼ばれる
class AddressSpan extends ClickableSpan{
@Override
public void onClick(View widget) {
// 住所を詰めてMapActivityを起動
Intent mapIntent = new Intent( ShowActivity.this, MapActivity.class);
mapIntent.putExtra( BizCard.COLUMN_ADDRESS, bizCard.getAddress());
startActivity( mapIntent);
}
}
まず住所としてaddress文字列を取得し、SpannableStringインスタンスに投入します。次にsetSpan()で任意のスタイルをセットします。
ここの第一引数には本来UnderlineSpanとかStrikethroughSpanといったスタイルをセットするようなクラスが入りますが、中でもClickableSpanではリンクを設定することができます。
ClickableSpan.onClick()はabstractなので、AddressSpanクラスにおいて、クリックされたら住所をインテントに突っ込んでMapActivityを起動するという実装を行っています。
これでめでたしめでたしと思ったら、リンクをクリックしても何も起こりません。
実はClickableSpanには、肝心のそのクリックを感知する機能が用意されていないらしいです。
感知するには、リスナー的なものとしてTextView.setMovementMethod( LinkMovementMethod.getInstance())という決まり文句を書けばいいみたいです。
意味がわからん。
Androidの記事
http://codezine.jp/article/detail/4842?p=2
前回の続き。
現在は既に登録されている名刺を表示するだけしかできません。
新規登録アクティビティへのリンクを作成します。
まずはこれまでのテンプレートとは完全に独立した登録メニューを作成。
/res/menu/list.xml
<?xml version="1.0" encoding="utf-8" ?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 新規メニュー --> <item android:id="@+id/menu_new" android:title="@string/menu_new" android:icon="@android:drawable/ic_menu_add" /> </menu>"@string/menu_new"とついでに他のメニュー文言を登録。
/res/values/string.xml
<string name="menu_new">新規</string>
<string name="menu_save">保存</string>
<string name="menu_edit">編集</string>
<string name="menu_delete">削除</string>
メニューボタンを押したときの挙動を追加。/src/com.example.bizcard/ListActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.list, menu);
return true;
}
Activity.onCreateOptionsMenu()はメニューボタンを押したときに出てくる内容を変更するメソッドです。MenuInflater.inflate()という謎のメソッドを実行することでメニューを追加することができます。
ひとつだけだとメニュー全体にボタンが現れますが、複数回追加すると追加したぶんだけメニューが増やせます。
メニューにクリック時の遷移を追加します。
こちらは元々クリックされることが想定されているので、わざわざリスナーを追加したりせずとも簡単に監視を行うことができます。
//メニューボタンのクリックイベント
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case R.id.menu_new:
// 編集画面へ遷移
Intent registIntent = new Intent( this, RegistActivity.class);
startActivity( registIntent);
break;
}
return true;
};
Activity.onOptionsItemSelected()でメニューボタンをクリックしたときのイベントを記述します。こちらはonItemClickと違ってMenuItemというわかりやすい引数で来ます。
クリックした部分が"@+id/menu_new"であればRegistActivityにインテントを送信しています。
今回はメニューにR.menu.listしかないのでswitch文の意味が全く無いですが、メニューに複数のボタンを追加したときでも全く同様に処理することができます。
無事に新規登録メニューができました。
サンプルと色がちがうんだが何でだろう?
Androidの記事
クラブニンテンドーオリジナルグッズの扇子が届きました。
高杉さん家のおべんとう1 柳原 望
☆☆☆☆☆
人生崖っぷちオーバードクターが、叔母の娘を引き取って育てることに。
年齢差と性格からなかなか打ち解けられない二人、その二人の会話の糸口、それがお弁当だった。
絵柄・画面構成は正直上手とは言えないですが、とっても可愛らしくて一生懸命な感じがします。
わりと重っ苦しいエピソードもあったりするのですが、というかそんなのばっかりですが、最後に報われます。
警察の話が一番かな。
不思議の国のアリス ルイス・キャロル (著) 河合 祥一郎 (翻訳)
☆☆☆
前赤ずきんちゃんが不思議の国に迷い込んだようですを読んだときに原作を読んだことがなかったことに気がついたので読んでみた。
あれ?オチは?
カフカの変身読んだときも思ったんだが、外国文学作品ってどうしてこう投げっぱなしなんだ?
なんかこう収拾つかなくなったから夢オチに逃げた感満載。
しかも青いブリンクのように勇気が残ったわけでもなし結局何しに行ったのだ。
まあ制作理由的にあんまりつっこんでもしょうがない気はしますが。
しかししょうもないダジャレまで再現することもなかろうに。
荒川アンダーザブリッジ4 中村 光
☆☆☆
ステラが世紀末覇者になってしまった。
あとリクが父親の軛にどうにか抵抗する話。
話が進んでそうで実は何一つ進んでないので書くこともなくて困る。
生徒会役員共4 氏家 ト全
☆☆☆
アリアとかネネとかはちょっと直接的かつ露骨すぎてあんまり好きじゃないんだよね。
要するに何を言いたいかというともっとスズをメインに。
限定版特典は単なるボイスカードです。
シノの声なんだがなんかいまいちイメージと違った。
#アニメは見たことありません
生徒会役員共&オールキャラクターズ 氏家 ト全
☆☆
『生徒会役員共』および『妹は思春期』『女子大生家庭教師濱中アイ』『アイドルのあかほん』のファンブックなのですが、なんか薄い。
インタビューがあるのはいいんだが、それ以外見所があんまりない。
あと「城島家の日常」コーナーの解説がキモい。
http://codezine.jp/article/detail/4842?p=2
前回までで名刺一覧の表示ができましたので、今回はそれぞれの名刺をクリックするとその詳細を表示させてみます。
別のアクティビティやアプリを起動するには、クリック部分にリスナーを仕込んでおき、クリックを感知して該当のアクティビティを起動する、というのが常套手段のようです。
まずリスナーをセット
/src/com.example.bizcard/ListActivity.java
public class ListActivity extends Activity implements OnItemClickListener{
public void onCreate(Bundle savedInstanceState) {
//表示
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
arrayAdapter = new ArrayAdapter<BizCard>(this, android.R.layout.simple_list_item_1);
listView = (ListView) findViewById(R.id.list);
listView.setAdapter(arrayAdapter);
//クリックリスナーをセット
listView.setOnItemClickListener(this);
}
}
OnItemClickListenerを直接実装しました。ということでOnItemClickListener.onItemClick()を実装します。
//クリックリスナー
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 選択された要素を取得する
BizCard bizCard = (BizCard)parent.getItemAtPosition( position);
// 参照画面へ遷移する明示的インテントを生成
Intent showIntent = new Intent( this, ShowActivity.class);
// 選択されたオブジェクトをインテントに詰める
showIntent.putExtra( BizCard.TABLE_NAME, bizCard);
// アクティビティを開始する
startActivity( showIntent);
}
正直引数がなんなのかさっぱりわからないんですが。AdapterView<?>って何だ?
検索しようがないので調べるにも調べられん。
ていうかそれ以前にAdapterViewがよくわからん。
まあとりあえずAdapterView.getItemAtPosition( position)でクリックしたビューを取得できるらしいです。
第二引数viewとか第四引数idとかは何なんだ?
該当のBizCardオブジェクトを取得できたらそれをインテントに詰め込んでShowActivityを実行します。
.classってのはまた何だ。
http://www.itarchitect.jp/technology_and_programming/-/18161-5.html
> Classオブジェクトは、「Foo.class」のように「《クラス名》.class」というかたちのクラス・リテラルによって記述することができる。
> このクラス・リテラルの型は、パラメータ付きのClass型になっている。
> 例えば、「Foo.class」というクラス・リテラルであれば、Class<Foo>という型を持つ。
なるほど、まったくわからん。
クラスリテラルってなんだよ。
中身は気にしないので単に殻としてShowActivityという型だけ欲しいときに.classを使えばいいということか?
よくわかりませんがとりあえず詳細画面が表示されるようになりました。
といっても詳細画面は現在引数を使わず完全固定なのですが。
さて、今回はActivityに直接OnItemClickListenerをinplementしています。
普通はこういう作りにせず、内部クラスを作ってそちらにリスナーをセットするという形にすることが定石らしいです。
ちょっとやってみます。
こういった定石とかってどうやって知ればいいんだろう?
public void onCreate(Bundle savedInstanceState) {
//クリックリスナーをセット
listView.setOnItemClickListener(new BizCardClickListener());
}
class BizCardClickListener implements OnItemClickListener {
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
BizCard bizCard = (BizCard)parent.getItemAtPosition( position);
Intent showIntent = new Intent( ListActivity.this, ShowActivity.class);
showIntent.putExtra( BizCard.TABLE_NAME, bizCard);
startActivity( showIntent);
}
}
まあ単に内部クラスを作っただけなので実質的には何一つ変わっていません。中身のコードの意味がわからないのもそのままということです。
Androidの記事