2012年12月17日月曜日

アンドロイドでシンプルなリストメニューを作成

ブログを始めてまだ1週間も経っていないのでフィードバックなどがいただけると嬉しいです。

私が使っている開発環境は jdk 1.7.0 、android 4.2 、 eclipse 4.2.1

今回はAndroid platformが用意したデフォルトの行レイアウトを使い、シンプルなリストメニューを作成しましょう。もちろん自作のレイアウトを使い、作成することも可能なんです。使い方としては以下の図のようにメニューリストの内容をクリックするとトーストが選択した内容を表示する。


1. listView layout 作成

まず、次のソースコードのように作成する。

<?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/text1"
       android:layout_width="match_parent"
       android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

new android application project で新しいプロジェクトを立ち上がり、そして上記のソースコードに書き換えます。

メニューリストの作成スペースを作るために、ListViewレイアウトを加えなければなりません。

これでコンパイルしてみると、画面には何も表示しません。それはListViewレイアウトにデータをまだ書き込んでいません。レイアウトにデータを書き込むため、まずそのレイアウトにidを加えないといけません。例の場合はListViewレイアウトにtext1というidを加えました。

次は、このidを利用し、データを書き込みます。

2. MainActivityクラスを作成

新しいJavaクラスを立ち上げて、それをMainActivityと名づけます。そして、次のコードを入力します。

public class MainActivity extends ListActivity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
 
  String[] values = new String[] { "Android", "iPhone", "WindowsMobile"};
  // First parameter - Context
  // Second parameter - Layout for the row
  // Third parameter - ID of the TextView to which the data is written
  // Forth - the Array of data
  
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1, android.R.id.text1, values);  
  // Assign adapter to ListView
  setListAdapter(adapter);  
 } 
}

ここで注意してもらいたいことは二つあります。一つ目は通常、extends Activity クラスとなっていますが、ここはListActivity クラスに書き換えることです。二目はListActivityクラスの場合はsetContextViewのかわりにsetListAdapterを使うことです。

これでコンパイルしてみると、String配列に代入した"Android","iPhone","WindowsMobile"がメニューに表示しました。

android.R.layout.simple_list_item_1がデフォルトの行レイアウトです。android.R.id.text1はデフォルト行レイアウトに入ってるデフォルトidです。もちろん、自作の行レイアウトを使用することも可能です。

次はメニューをクリックとトーストが表示するプログラムを作成します。

3. onListItemClickメソッドを実装

MainActivityクラスにonListItemClickメソッドを実装し、次のソースコードを入力します。

@Override
public void onListItemClick(ListView l,View v,int position,long id){
 String item = (String)getListAdapter().getItem(position);
 Toast.makeText(getApplicationContext(),
        item+"", Toast.LENGTH_SHORT)
        .show();
  
}
String itemにgetListAdapter.getItem()メソッドより選択したメニューの名前を代入します。そして、代入したitemをトーストより表示します。

4. 完成!!!

これでチュートリアルは終了です。ビルドすると最初に話したようなプログラムが動くはずです。そして、見ていただいてありがとうございました。

次のソースコードは完成したMainActivityクラスです。

import android.os.Bundle; 
import android.app.ListActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
 
  String[] values = new String[] { "Android", "iPhone", "WindowsMobile"};
  // First parameter - Context
  // Second parameter - Layout for the row
  // Third parameter - ID of the TextView to which the data is written
  // Forth - the Array of data
  
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1, android.R.id.text1, values);  
  // Assign adapter to ListView
  setListAdapter(adapter);  
 }
 
 @Override
 public void onListItemClick(ListView l,View v,int position,long id){
  String item = (String)getListAdapter().getItem(position);
  Toast.makeText(getApplicationContext(),
         item+"", Toast.LENGTH_SHORT)
         .show();
  
 }
}






2012年12月15日土曜日

Google Drive 共有ファイルをダウンロード

どうやってGoogle drive の共有ファイルからダウンロードするのかわからない人にお教えします 
(^^)

まずリングをクリックして、次の画面のようなが表示する。


画面の左上の「ファイル」をクリックして

んで、ファイルからメニューが表示する。そして、メニューの「ダウンロード」をクリックすると
ダウンロードが始めます。

以上、不明な点があったらどうぞ質問お願いします。

段ボールロボット





理大祭で展示した段ボールロボットです

パソコンではこんな感じの画面です


コンソール画面に書いてある通り、j、k、lをキーボードから入力することによってロボットが回転したり、前進したりします。最初は押すときだけロボットが動き、キーボードから離れると勝手に止まるような設計しようと思いましたが、やり方よくわからなくてやめました (#>.<#)


今回どうしてもおすすめしたのはこれ
JY-MCU bluetooth - シリアル 無線通信モジュール

日本ではあまり流行ってないようで、ビックカメラで探していたらものすごい高いしか売ってなくて、海外のサイトで購入しました。
かなり評判の良いsellerなので、安心して購入できます。
サイトは ここです 英語のサイトですみません (><!)


接続の時はペアリングというパスワードみたいなものが画面に出てくると思います。
次を入力すればよいです

「 1234 」

最後に出力ポートを確認すればマイコンにつなぐだけで使えます。

ソースコードが欲しい人は以下のリングにて、ダウンロードしてください。
ここをクリックし、ダウンロードします

ただ単にパソコンでマイコンとシリアル通信がやりたい人には私が作ったとても

シンプルなターミナル

が入っているので上記のリングにてダウンロードしてください。

不明な点があったら気軽に質問してください
どうぞよろしくお願いします

初めまして

理大祭でみんなの力を集結し、作り上げたロボットをもっとたくさんの人見てもらいたい

というきっかけでブログを始めました。

ブログに全然初めてなので、改善するところを発見したらぜひ教えてください。

その前に、まず自己紹介させてもらいます。

私は日本人ではんく、純血なマレーシア人です。日本語を習得し始めたのはいま(2012年12月現時点)から3年8カ月 (正確過ぎるかなあ~) 2009年の4月から始めたので、まだまだ日本語は対してしゃべれないので、日本語も直していただけると嬉しいです。


明日から理大祭のロボットに関する記事を書き始めるので

よろしくお願いします