ラベル java の投稿を表示しています。 すべての投稿を表示
ラベル java の投稿を表示しています。 すべての投稿を表示

2014/09/24

[mac os x][mavericks]eclipseが起動できない

昨日、jdkのインストール方法について書いたが、その後、eclipseを入れたら、下のように警告がでて、起動できない。
 photo eclipse_mac_os_x_01_zps28ea8133.png
なぜかなーっと思っていたら、どうやらセキュリティ関連らしく、システム環境設定の「セキュリティとプライバシー」で、「このまま開く」というボタンを押せば起動できた。
 photo eclipse_mac_os_x_02_zpsd4bb600c.png

2014/09/23

[mac os x][Mavericks]JDK6をインストール

何故か、MavericksでJava 6が発見できなかったので、インストールしてみることに。

で、方法は、jdk 6 on mountain lionを読みながらインストールを行った。

Downloads for Apple DevelopersページでJavaと検索する。

Java for OS X 2013-005 Developer Packageを選択して、java_for_os_x_2013005_dp__11m4609.dmgファイルをダウンロードする。

java_for_os_x_2013005_dp__11m4609.dmgをダブルクリックする。
 photo jdk6_mac_apple_01_zps700598d5.png
JavaDeveloper.pkgをダブルクリックする。
 photo jdk6_mac_apple_02_zps44636f09.png
「続ける」ボタンを押す
 photo jdk6_mac_apple_03_zps8c174b2c.png
「続ける」ボタンを押す
 photo jdk6_mac_apple_04_zps430ab3b3.png
「続ける」ボタンを押す
 photo jdk6_mac_apple_05_zpscb8807d0.png
「同意する」ボタンを押す
 photo jdk6_mac_apple_06_zps22fad1c8.png
「インストール」ボタンを押す
 photo jdk6_mac_apple_07_zpsa4f79a29.png
インストールされるまで待つ
 photo jdk6_mac_apple_08_zpsa0c5a755.png
「閉じる」ボタンを押してインストール完了。
 photo jdk6_mac_apple_09_zps4a2fd25a.png
インストールができたかどうかの確認は、ターミナルで

java -version
と打って
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
とでればおk

2014/09/11

[Android][Java]カメラで取得した画像を表示

前回、カメラを起動する方法を書きました。

で、その時は、サムネイルの表示だったのですが、今回は、とった写真をそのまま表示する方法について。

static final int REQUEST_IMAGE_CAPTURE = 1;
private Uri imageUri;

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {

 
 String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(new Date());
 String mCurrentPhotoFileName = "JPEG_MEMO_" + timeStamp + "_";
 
 ContentValues values = new ContentValues();
 values.put(MediaStore.Images.Media.TITLE, mCurrentPhotoFileName);
 values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
 imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
 
 takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
 startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
上のプログラムでカメラを起動し、下のプログラムで画像を表示させます。
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
 ImageView imageView = (ImageView) findViewById(R.id.imageview);
 imageView.setImageURI(imageUri);
}
問題は、端末を傾けてしまうと画像が表示されなくなってしまうこと。

なので、この問題はまた改めて考えたい。

参考URL
インテントでカメラを呼び出す方法の補足(主に、Xperia 2.1問題対応)

2014/09/09

[Android][Java]カメラを起動する

プログラムからカメラを起動する方法をTaking Photos Simplyを読みながら実装してみた。

manifest.xmlに定義を追加

<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="false" />
    ...
</manifest>
強制的にカメラ機能が必要ではない場合は、falseを設定する。
static final int REQUEST_IMAGE_CAPTURE = 1;
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
上のプログラムをたたくと、カメラが起動する。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        Bitmap imageBitmap = (Bitmap) extras.get("data");
        ImageView mImageView;
        mImageView.setImageBitmap(imageBitmap);
    }
}
上のプログラムでサムネイルを取得することができる。

ただ、撮った画像をそのまま掲載したい場合は、どうすればいいのだろうか?
今度、それについて調査していきたい。

2014/09/08

[Android][Java]SimpleCursorAdapterを使ったList View

前回、ArrayAdapterを使ったList Viewの表示方法について書きました。

で、今回は、SimpleCursorAdapterを使った表示方法について。

import android.widget.AdapterView;
import android.support.v4.widget.SimpleCursorAdapter;


ListView listView;

Cursor c = db.query(
/* ... */
);

String[] FROM = {TableName.ColumnName};
int[] TO = new int[] {android.R.id.text1};

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1, c, FROM, TO,0);
listView.setAdapter(adapter);
上のように今回は、sqliteからデータを取得して表示する方法について書いたけど、めっちゃシンプル。

2014/09/06

[Java][Android]ListViewのクリック処理について

前回、ListViewの表示方法について書きました。

で、ListViewをタップした時の処理をしたいのだが、どうすればいいのだろうか?

ListView listView;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position,long id) {

 }
});
上のようにした結果、クリックイベントを取得することができた。

参考
Android -ListView(イベント処理)-
Android - Populate listview using SimpleCursorAdapter (about to loose the will to live, lol)

2014/09/04

[Java][Android]Alertを表示する方法

アラートダイアログ(AlertDialog)を使用するにはを読みながらalertの表示方法を勉強する。

実際に組んだのは下のプログラム

import android.app.AlertDialog;
import android.content.DialogInterface;
//thisは、ActionBarActivityをextendしたクラス
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("エラー");
builder.setMessage("入力してください。");
builder.setPositiveButton("OK",
  new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    dialog.dismiss();
   }
});

AlertDialog alertDialog = builder.create();
alertDialog.show();
実行したら確かにアラートが表示された。

初めてのAndroid 第3版にも掲載されていなかったので、困っていたのだが、やり方がわかってほっとした。
初めてのAndroid 第3版
初めてのAndroid 第3版
posted with amazlet at 14.09.04
Ed Burnette
オライリージャパン
売り上げランキング: 175,634

2014/09/03

[Java]クラス名.this.メソッドって?

androidの実装で調べごとをしていたら

hoge.this.bar();
みたいな記述があって、これなんだろうなー?ってぐぐってたら、

(クラス名.this.メソッド)って・・・?っていう質問を発見して、自分の親に対するthisを呼び出すために
親class名.this.メソッド名();
となっているようです。

なるほどなー。

2014/09/02

[Java]ジェネリック クラス

Androidのリファレンスを読んでいるとたまーに、

public ArrayAdapter (Context context, int resource, int textViewResourceId, List<T> objects)
的な表記を目にするんだけど、そもそも<T>ってなに?

java Class<T>のTはどんな意味ですか???
で確認すると、動的に型を設定することができるみたいです。上のリンク先で紹介されているプログラムを書くと下のようになるみたい。
public class GenericClass <T> {
  void disp(T msg) {
    System.out.println(msg);
  }
}
で、Tの部分にStringを設定すると下のようになる。
GenericClass <String>  msg = new GenericClass <String>();
public class GenericClass <String> {
  void disp(String msg) {
    System.out.println(msg);
  }
}
Stringの部分をIntegerすると次のようになる。
GenericClass <Integer>  msg = new GenericClass <Integer>();
public class GenericClass <Integer> {
  void disp(Integer msg) {
    System.out.println(msg);
  }
}
これ、class設計が楽になるのかもしれないけど、可読性はどうなんだろうか?

便利は便利なんだけどね。

2014/06/16

[android][Java]addPreferencesFromResourceのdeprecatedについて

初めてのAndroid 第3版
初めてのAndroid 第3版
posted with amazlet at 14.06.16
Ed Burnette
オライリージャパン
売り上げランキング: 309,945

初めてのandroid第三版を読んでいて、下のような記述があるのですが、どうやら、addPreferencesFromResourceメソッドはdeprecatedされているようだ。
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Prefs extends PreferenceActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);
    }
}
public void addPreferencesFromResource (int preferencesResId)
を読むと確かにそうなっているんだけど、代替手段はなんなのか、一切書かれていない。

この不親切さは何なんだ。

iOSのリファレンスなんて、deprecatedの場合、代替手段があって、ものすごく便利なのだが。

この辺の違いが、developer想いかどうかわかるんだよなー。

2014/06/15

[android][Java]匿名クラス

初めてのAndroid 第3版
初めてのAndroid 第3版
posted with amazlet at 14.06.16
Ed Burnette
オライリージャパン
売り上げランキング: 309,945

今、初めてのandroid第三版を読んでいるのですが、そこで、下記のような記述がありました。
new DialogInterface.OnClickListener() {
}
何これ??

おそらくイベントリスナーをその場で実行していると思うんだけど、それにしても、確信が得られない。

で、
Java用語集:匿名クラス[無名クラス]
を読むと、匿名クラスと言って、名前がないクラスみたいですね。

これ便利なので、使い倒せるようにしたいなー。
きっと、これ使い続けるとクロージャーとかの話になってくると思うんだけど。

2014/06/09

[Android][Java]setContentView()メソッド

onCreateメソッドの一発目にある

setContentView(R.layout.activity_fullscreen);
って何だろうって調べてみたら、何パターンかあるみたいなんだけど、下のが一番、しっくりきた。

Set the activity content from a layout resource. The resource will be inflated, adding all top-level views to the activity.

via:public void setContentView (int layoutResID)
引数にint型のパラメータを設定しており、単純にActivityにViewを設定するということですね!!

2014/06/03

[Java][android][eclipse]プロジェクトの削除方法

今、androidの勉強をしているのですが、そもそもeclipseを使ったことがなくて、プロジェクトの削除の仕方がわからない。

そこで、適当にいじってみたら、下の図のようにPackage Explorerで削除したいプロジェクトの選択を行い、右クリックして、「Delete」するだけでよかった。
 photo eclipse_project_delete_zps42118ca9.png
最初、フォルダから直接、削除していたんだけど、それじゃー、ちょっとまずいみたい。

勉強になりますね。

2014/06/01

[Java][Eclipse]エディタを分割する

秀丸みたいにEclipseでエディタを分割するにはどうすればいいのだろうか?

答えは簡単。

下のように「window」→「new editor」を選択すればおk
 photo java_eclipse_neweditor_01_zps3a5bab1d.png
ドラッグすれば、縦分割することも可能です。

これは便利ですね。

2014/03/03

[Java][初めてのeclipse]クラスの作成

今回は、classの作成方法について

左上のアイコンをクリックしてclassを選択(下図参照)
 photo eclipse_newclass01_zps103ad721.png
次にクラス名を入力するんだけど、「public static void main」にもチェックを入れて作成
 photo eclipse_newclass02_zps09613c14.png
これも意外とあっさりできた。

2014/03/02

[Java][初めてのeclipse]プロジェクトの作成

今回は、エクリプス上でプロジェクトの作成方法について

左上のアイコンをクリックして「Java Project」を選択(下図参照)
 photo eclipse_newproject01_zps9c30ec4e.png
次にプロジェクト名を入力(下図参照)
 photo eclipse_newproject02_zps642764cf.png
意外とあっさりできましたー。

2014/02/27

[Java][初めてのeclipse]スペース、tabを表示

「window」→「preference」→「General」→「Editors」→「Show line numbers」にチェックを入れてok
 photo eclipse_showwhitespace01_zps54bd4e86.png
無茶苦茶醜いのですが、「Show whitespace characters」にチェックを入れておk

2014/02/26

[Java][初めてのeclipse]行番号を表示

どうやらデフォルトでは、行番号が表示されないようだ。

というわけで、表示方法について。

「window」→「preference」を選択
 photo eclipse_showline01_zps449986df.png
「General」→「Editors」→「Show line numbers」にチェックを入れてok
 photo eclipse_showline02_zpsccf958fd.png
めちゃ簡単。

2014/02/25

[java][初めてのeclipse]perspectiveを開く

eclipseを立ち上げたら簡単なチュートリアルがあったので、それにそってちょっと使い方を学んでみる。

まずは、perspectiveを開いてみる。

と言ってもやり方はめちゃくちゃ簡単。
下のように「window」→「open perspective」→「Java」を選択すればおk
 photo eclipse_perspective01_zps6587ca11.png

2014/02/24

[Java]エクリプスをダウンロード

ちょっと興味があって、Eclipseをインストールしてみた。

ダウンロードページで下のところからソフトをダウンロード。
 photo EclipseIDEforJavaEEDevelopers_zpsf3509318.png
Xcodeのようにインストールする必要がなく、解凍すればすぐに使えるから便利ー。