ぱっと見、どう考えても toString() さえ実装されていたら、表示は勝手にやってくれると思ったので、『できるだけ難しい事をせずに、Android のリストビューでタイトルをクリックしたらそのページを表示する』を少し変更しましたが、予想通りでした。JSON からの読み込みは自前のアダプタが必要そうですが、前よりは Java らしくなりました。![]()
package lightbox.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.TextView;
import android.view.*;
import android.util.Log;
import android.content.*;
import android.net.*;
public class LightActivity extends Activity {
/** Called when the activity is first created. */
private static final String DEBUG_TAG = "ListView :";
// ArrayAdapter 用プライベートクラス
private class MyLinkData {
private String _myText;
private String _myUrl;
MyLinkData( String dataUrl, String dataText ) {
_myText = dataText;
_myUrl = dataUrl;
}
public String toString() {
return _myText;
}
public String getUrl() {
return _myUrl;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// リストビューに表示させる文字列の配列( URL )
final MyLinkData[] myLinks = {
new MyLinkData( "http://winofsql.jp","SQLの窓" ),
new MyLinkData( "http://logicalerror.seesaa.net/","logical error"),
new MyLinkData( "http://nurd.seesaa.net/","琴線に触れる"),
new MyLinkData( "http://ginpro.winofsql.jp/","GINPRO")
};
// リストビュー用のアダプターを作成
ArrayAdapter<MyLinkData> adapter = new ArrayAdapter<MyLinkData>(this, android.R.layout.simple_list_item_1);
for( int i = 0; i < myLinks.length; i++ ) {
// 配列の内容をセット
adapter.add( myLinks[i] );
}
// リストビューを作成
ListView listView = new ListView(this);
this.addContentView(
listView,
new ViewGroup.LayoutParams (
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT
)
);
// リストビューにデータ( アダプター ) をセット
listView.setAdapter(adapter);
// リストビューのアイテムがクリックされた時の処理
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ListView listView = (ListView) parent;
// クリックされたアイテムを取得
// MyLinkData をセットしているので、MyLinkData として取り出す
MyLinkData item = (MyLinkData) listView.getItemAtPosition(position);
// LogCatに表示
Log.i(DEBUG_TAG, item.getUrl());
Log.i(DEBUG_TAG, item.toString());
Log.i(DEBUG_TAG, Integer.toString(position));
// URL を開く
startActivity( new Intent(Intent.ACTION_VIEW,Uri.parse(item.getUrl())) );
}
});
}
}
|
|
【記録の最新記事】
- 「ドライバは \Device\Harddisk0\D でコントローラ エラーを検出しました。」と言うエラーでも、PC を買い替えないで済むかもしれない対処
- ime-mode の正式ドキュメント
- 久しぶりに IE6 で巡回してみると
- Google のカスタム検索の様子がおかしいのですが
- なるほど。シマンテックの新技術「Insight」の概要
- キーボード説明用画像( 文字無し版 )
- ちょっと不思議なNTTPCコミュニケーションズの用語解説辞典
- CSS3 + JavaScript(IEはFilter) : 「フェードイン、フェードアウト」制御
- 東北地方太平洋沖地震 関連のJavaScriptリンクユニット
- 特殊文字中の丸付き文字一覧。こんな感じ >

- IEのお気に入りのショートカット
- IEで透過画像をリンク設定した場合マウスを上に置くと透過しない環境がありましたが、ここ最近のWindows Update で正常になりました
- IE8 が勝手に SmartScreen フィルター機能と称して urs.microsoft.com にアクセスして固まってダウンロードが最後で止まる
- これって仕様なんでしょうね。さっぱり知りませんでした。【URL の QueryString の KEY 部分に使ってはいけない文字】
- プログラマがぶちあたりそうな TCPDF の誤解
- XPモード + PostgreSQL / 外部からの接続
- C言語 : EBCDIC・JIS 相互変換
- Python である理由も Ruby である理由も通常は無いのですが
- Symantec Endpoint Protection のSYMANTEC 改変対策警告ダイアログがXPモード起動時に表示される
- 古いシステムメンテの為に古〜いPCに再び命を吹き込む




これでは、リストビュー内のコンテンツに汎用性が全くありませんが、


実行すると、以下のようなダイアログが表示されて、何故かプログレス表示が止まってしまいます。この後『次』を選ぶとまた同様のダイアログが表示されて、最後にはツールのダイアログが表示されますが、これは閉じて下さい。( 次回からは、Setup.exe を実行するとこのツールダイアログが出ますが、その時に PC から認識されます / 内部から何か呼び出しているようです )
たぶんこの過程のどこかでドライバがインストールされたものと思われます。
minSdkVersion の設定
AndroidManifest.xml を選択して、Manifest タブから設定します
Android 2.1 は、API Version 7 なので、ここがこれより大きい数字になっていると転送されません。この値の初期値は、プロジェクトを作成した時のターゲットバージョンなので、他のプロジェクトを転用した時に注意が必要です。( ターゲットのバージョンは、プロジェクトのプロバティから変更できます )
デバッグ可能にする
Application タブから設定して下さい
( 画像の位置とは限らないので注意して下さい )
デバイスを選択して実行する
デバイス側の設定
アプリを自由に登録できるように、提供元不明のアプリにチェックを入れます。さらに開発メニューから USB デハッグをチェックして、充電中に画面をスリープにしないようにしておけば、USB をつないでいる間は画面が消えなくなります。USB 接続中は左側二つの設定で良いですが、カメラ等で USB を外してテストする場合の為、バックライトを常時点灯にしておきます( そうするとトップ画面以外では自動的にはスリープしないと思います )
関連する記事
まずはサインイン
▲ アップードボタンをクリックすると、▼ に画面が切り替わります。
ファイルを選択し終わりましたので、『開く』でアップロードが開始されます。終了メッセージの表示を実装していないので、Debug.writeln の結果で確認します。
アプリを登録
Windows8(コンシューマ) + VisualStudio 11 でプロジェクトを作成してから、
この後でパッケージ名が表示されるので、それを Visual Studio のほうにセットします。この内容は記録しなくても、
Visual Studio より参照設定
SDK を使用するように構成します
実際の実行の画面遷移
Windows Live から見たアプリの管理画面
プロフィールから『管理』へ移動するとアプリの一覧が表示されて個別に管理できます。最初のほうの詳細情報はアプリを作った開発者が利用する画面で、こちらは使用するユーザが管理する画面です( Twitter と同じです )
ソースコード



リアルタイムHTML
フリーフォントで簡単ロゴ作成
パーソナルリンク
超めんどくさいフォルダを開く!
琴線に触れる
手ブロ・カスタムパレットツール
手書きブログ用ハートエディタ
WEB 職人
職人的フリーソフトの使い方
アプリケーション作成
SQLの窓と銀プログラマ
SyntaxHighlighter 2.0
Twitter : @sworc