忍者ブログ

からすまる日誌

20200227pm01-03 android stadio

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

20200227pm01-03 android stadio

sample6bはことりんにそのまま変換できずエラーが出るプログラム
変数はすべてことりんでは宣言されていないといけないらしい
 


UMLの図
Unified Modeling Language 
 
1回これを読んでおくこと
 

エクリプスさんがプラグインでこれを作れる
いまのバージョンだと修正しないとエラーになるらしい
 
JDFSDKとかいうのをいれないといけないらしい
 
下準備:
ヘルプ
新規ソフトウエアのインスト
http://download.eclipse.org/releases/2019-09/
を入力
GEFを入力
これを選ぶ
 
 

あまてらすなんとかがよく使われるUML図プラグイン
C:\pleiades\eclipse\dropins\AmaterasModeler\eclipse\plugins
ここに、zipファイル(AmaterasUML_1.3.4-20200227T042128Z-001.zip)の中に入っていたやつをいれる
 
 

新規
そのた
あまてらすUML
クラス図
 
左側からドロップしてつかう
 
 

でもやっぱりバグがあって保存したの開くと、ないらしいな。
 


基本情報処理のメイズの問題はいい問題
いちどやってみるといいらしい
 
検定の問題はよいコードじゃなくて問題のための問題
無駄な処理をわざとしている
それをよろしいように直そうという問題だったりする
だからプログラムが得意なひとほどハテナになる
ええプログラムがのってる訳でなく、悩ますためのコードが載ってると考える
 
ここをよむ 
 


話は戻ってlesson1 sample6b.java
 
エラーさんがでたが、
①ボタンの処理だから
 bt.setOnTouchListener(new SampleTouchListener());
じゃなくて
 bt.setOnClickListener(new SampleClickListener());
②OnClickListenerのなかには
onClickがないといけない決まり
 
class SampleTouchListener implements View.OnTouchListener{
    public void onClick(View v) {
        tv.setText("いらっしゃいませ");
    }
}
  
できた
--->sample6B.java
  
package com.example.lesson1;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class Sample6B extends AppCompatActivity {
    TextView tv;
    Button bt;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout l1 = new LinearLayout(this);
        l1.setOrientation(LinearLayout.VERTICAL);
        setContentView(l1);
        tv = new TextView(this);
        tv.setText("いらっしゃいませ");
        l1.addView(tv);
        bt = new Button(this);
        bt.setText("初期状態に戻す");
        bt.setOnClickListener(new SampleClickListener());
        l1.addView(bt);
    }
    public boolean onTouchEvent(MotionEvent e) {
        if (e.getAction() == MotionEvent.ACTION_DOWN) {
            tv.setText("こんにちは");
        } else if (e.getAction() == MotionEvent.ACTION_UP) {
            tv.setText("さようなら");
        }
        return true;
    }
    class SampleClickListener implements View.OnClickListener {
        public void onClick(View v) {
            tv.setText("いらっしゃいませ");
        }
    }
}
 
 
もうひとつエラーをしていて、
    class SampleClickListener implements View.OnClickListener {
        public void onClick(View v) {
            tv.setText("いらっしゃいませ");
        }
    }
を、
public class Sample6B extends AppCompatActivity {
外側に置いてしまっていた。
内側が正解である。
 
 

lesson3
→空のアクティビティ
→javaを選択
 
レイアウトエディターを使った画面周りの作成。
 
サンプルプログラムはいつもHello worldと表示される
マニフェストをみると.MainActivityを呼び出している
 
MainActivityのなかみ--->
 
package com.example.lesson3;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
 

フォルダres
layout
activity_main.xmlをひらく
 
 

シーンビルダーが内臓されているようなもの。
 
コンストレイントレイアウトというのを推しているらしいのだが使いづらいらしい
相対位置でレイアウトするらしい
いっこ動かすとぐちゃぐちゃになって使いづらいらしい
 
リニアレイアウトでやりましょうはじめは。
ただ軽いので、開発では最後にコンストに変換するらしい
 
 
これを
こんなふうに
 

 
ここはこんすとレイアウト用の属性なのでざっぱりけす
/>は要るようだ
 


 
ここをバーティカルにして縦長いのに固定しますよ
ボタンを追加
sizeをかえたかったら検索でsizeとすると、
 

ボタンをクリックしたときの作業
まあidをつけますか
 

 
 

じゃあMainActivity.javaに移動して
宣言などしますよ
 
public class MainActivity extends AppCompatActivity {
    private TextView myText;
    private Button myBtn1;
こうだ
 
newとかはいらないのですよ
 

ばーてぃかるになってなかったので
ボタンが横に配置されてた
 
 
なおった。
 
ボタンに色を付けるときは
検索でbackground
#からカラーコードをいれてやる
 
 

 myText = findViewById(R.id.myText);
Rとはリソース
赤地になることがあるが気にしなくていい
ビルドができたら解消されるらしい
 
Rはアンドロイドスタジオさんがつくったリソースというオブジェクトさん
サブカテゴリみたいな感じでidがついてるらしい
 
面接ではアンドロイドスタジオでつくったものをみせるとはやい。
 
デザインの画面の青っぽいほうは枠組みたいのらしい。
 
ここでも切り替えられるよ。
 

なおxmlなので//はコメントアウトじゃないよ
<!---->
ですよ
コメント部分を選択状態で、ctrl+/でコメントアウトの付け外しができるよ。
 

すこしあそんでみますか
 
 
ボタン2をふやしたが
レンダリングが進まなかったので
6:Logcatをみたら
エラーさんがいっぱい。
 
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at com.example.lesson3.MainActivity.onCreate(MainActivity.java:36)
 
Nullですなといっておられる
 
ボタンを追加したときは、
 
①ボタンを宣言する
 private Button myBtn2;
②ボタンをこれする
 myBtn2=findViewById(R.id.myBtn2);
 
追加したときはこの2つが必要なのだ。
 
 
Logcatはここ↑
 

あそんだ
 
 
acticity_main.xml
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/myText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="30sp" />
<!--    aaaaa-->
<!--    bbb-->
<!--    -->
    <Button
        android:id="@+id/myBtn1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff0"
        android:text="ボ!タ!ン!!"
        android:textColor="#FF9800"
        android:textSize="36sp" />
    <Button
        android:id="@+id/myBtn2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="ざわ"
        android:textSize="30sp" />
</LinearLayout> 
 

MainActivity.java
 
package com.example.lesson3;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
    private TextView myText;
    private Button myBtn1;
    private Button myBtn2;
    int i = 0;
    String hoge="ざわ...";
    int myTextSize = 36;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myText = findViewById(R.id.myText);
        myBtn1=findViewById(R.id.myBtn1);
        myBtn2=findViewById(R.id.myBtn2);
        myBtn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if(i==0) {
                    myText.setText("Good afternoon World");
                    myTextSize+=5;
                    myText.setTextSize(myTextSize);
                    i=1;
                }else{
                    myText.setText("Good night World");
                    myTextSize+=5;
                    myText.setTextSize(myTextSize);
                    i=0;
                }
            }
        });
        myBtn2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                hoge += hoge;
                myTextSize = 36;
                myText.setText(hoge);
            }
        });
    }
}
PR

コメント

ブログ内検索

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30