ウィンドウ→設定→Java→エディター→コンテンツ・アシスト→拡張
で、Javaプロポーザル、Java型プロポーザル、Java非型プロポーザルにチェックを付けてOK。
ListViewに文字列を表示
画面にListViewを追加して文字列を表示します。
■main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
■MainActivity.java
package com.example.testlistview; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { private ArrayList<String> list = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { // TODO 自動生成されたメソッド・スタブ super.onCreate(savedInstanceState); setContentView(R.layout.main); list.add("item 1"); list.add("item 2"); list.add("item 3"); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); ListView listview = (ListView)this.findViewById(R.id.listview); listview.setAdapter(adapter); } }
コピペして新規プロジェクト作成
ランチャーアプリのスケルトン作成
Eclipse4.3.2を操作して、タイトルだけを表示するランチャーアプリ(ランチャーメニューから起動できるアプリ)を作成します。
■新規プロジェクト作成
1.ファイル→プロジェクト→Androidアプリケーション・プロジェクト→次へ
2.新規Androidアプリケーション画面に必要な項目を入力→次へ
※画面に警告メッセージが出ているように本来はパッケージ名をユニークな名前(ドメイン名の逆順+アプリ名)にする
3.プロジェクトの構成→次へ→ランチャー・アイコンの構成→次へ
4.アクティビティーの作成はチェックを外す
※チェックを付けると簡単に作成できますが、余分なものが付いてしまうので、シンプルにするため後で自分で作成します
5.完了ボタンを押すと、プロジェクトが作成される
■画面レイアウトを作成する
1.res→layout→新規→その他→Android XML レイアウト・ファイル→次へ
2.New Android Layout XML File画面に必要な項目を入力
3.完了ボタンを押すと、レイアウトファイルが作成される
※同時にgen→com.example.skeleton→R.layout.mainが追加される
■画面レイアウトを操作するクラスを作成する
1.src→新規→クラス
2.Javaクラス画面に必要な項目を入力
3.完了ボタンを押すと、クラスファイルが作成される
4.ソース→メソッドのオーバーライド/実装(V)
5.onCreate(Bundle)をチェック
6.OKボタンを押すとメソッドが追加される
7.追加されたメソッドの最後にsetContentView(R.layout.main);を追加する
■マニフェストファイルに、起動クラスの登録、ランチャーアプリの設定
1.AndroidManifest.xml→アプリケーション→追加→Activity→OK
2.画面右側Nameの参照ボタン→MainActivity→OK
3.MainActivity→追加→Intent Filter→OK
4.Intent Fileter→追加→Action→OK
5.画面右側Nameにandroid.intent.action.MAINを入力(MainActivityを起動クラスとして登録)
6.MainActivity→追加→Category→OK
7.画面右側Nameにandroid.intent.category.LAUNCHERを入力(ランチャーアプリとして設定)
C言語でfread検証
ちょっと仕事で調べる必要があって、freadの検証。
ソースコード
/* main.cpp */ #include <stdio.h> #include <time.h> #include <windows.h> #include <mmsystem.h> #pragma comment(lib, "Winmm.lib") #define BUF_SIZE 1024 static LARGE_INTEGER nFreq, nBefore, nAfter; static LONGLONG DiffTime(); static int test1(FILE *fp, const char *fileName, char *buf); static int test2(FILE *fp, const char *fileName, char *buf); int main(int argc, char *argv[]) { FILE *fp = NULL; char buf[BUF_SIZE]; const char *fileName = "D:\\test.dat"; QueryPerformanceFrequency(&nFreq); test1(fp, fileName, buf); test1(fp, fileName, buf); test2(fp, fileName, buf); test2(fp, fileName, buf); return 0; } LONGLONG DiffTime() { return (nAfter.QuadPart - nBefore.QuadPart) * 1000 / nFreq.QuadPart; } int test1(FILE *fp, const char *fileName, char *buf) { int err = 0; int readLength = 0; int readTotal = 0; printf("--- 実験1 ---\n"); fp = fopen(fileName, "rb"); if (fp == NULL) { printf("open error. filename=%s\n", fileName); return -1; } QueryPerformanceCounter(&nBefore); while(1) { readLength = fread(buf, sizeof(char), BUF_SIZE, fp); readTotal += readLength; if (readLength != 1024) { err = ferror(fp); printf("fread length unmatch. ferror=%d, readLength=%d\n", err, readLength); break; } } QueryPerformanceCounter(&nAfter); printf("readTotal=%d, time=%dms\n", readTotal, DiffTime()); fclose(fp); return 0; } int test2(FILE *fp, const char *fileName, char *buf) { int err = 0; int readLength = 0; int readTotal = 0; printf("--- 実験2 ---\n"); fp = fopen(fileName, "rb"); if (fp == NULL) { printf("open error. filename=%s\n", fileName); return -1; } QueryPerformanceCounter(&nBefore); while(1) { readLength = fread(buf, BUF_SIZE, 1, fp) * BUF_SIZE; readTotal += readLength; if (readLength != 1024) { err = ferror(fp); if (err != 0) { printf("fread error. ferror=%d, readLength=%d\n", err, readLength); break; } else { printf("eof. ferror=%d, readLength=%d\n", err, readLength); break; } } } QueryPerformanceCounter(&nAfter); printf("readTotal=%d, time=%dms\n", readTotal, DiffTime()); fclose(fp); return 0; }
結果
--- 実験1 --- fread length unmatch. ferror=0, readLength=344 readTotal=336724312, time=4591ms --- 実験1 --- fread length unmatch. ferror=0, readLength=344 readTotal=336724312, time=3490ms --- 実験2 --- eof. ferror=0, readLength=0 readTotal=336723968, time=3024ms --- 実験2 --- eof. ferror=0, readLength=0 readTotal=336723968, time=3349ms