60日間全力プログラミング

プログラミング初心者が二ヶ月間でどこまでいけるかを記録したプログラミング学習ブログ

8/13

学習時間
5,00
 
今日やったこと(お盆)
  • Androidリストビュー入門 (全12回)
  • Androidデータベース入門 (全10回)
 
 
考察
ドットインストールでやっていることがわからなくなってきた。もっと演習しないと、とりあえず早くAndroid開発入門を終わらせて、アプリ開発実践に入ろう。
 
ここ数日、やることへの目標達成意欲が弱い。まずは環境を変える。そして、適切なフィードバック。自分のレベルがどのくらいか把握して、目標を定める。明日は、丸々プログラミングに費やす。
 
明日やること
 

Androidデータベース入門終了

本格的にどれがどのように動作しているかわからなくなってきました。
そろそろ、演習して習った内容をアウトプットしていかないと知識が身につかないですね。
 
SQLite入門 6回まで
.tables どのテーブルがあるか確認
.schema  中身の確認
.drop table 名前  デーブルの削除
 
alter table 名前 rename to 変更したい名前;
テーブルの名前の変更
 
alter table 名前 add column 追加したいカラム;
カラムの追加

Androidリストビューできた!

 
[evernote:d03670b6a01be642403ce651d0369c83 アップロード中]
 
ドットインストールさんの力でできたけど、完全に写経状態になりつつあるけど大丈夫ですかね。^^;
自分でアプリを作るときにこういう機能あったなーって感じで思い出して利用できればいいと考えています。
 
Androidリストビュー入門終了
 
  • getView()の実装
  • adapterの設定
  • ViewHolder
  • setTag()、getTag()
 
 
package com.example.makabe.mylistviewapp;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ListView myListView = (ListView) findViewById(R.id.myListView);

//データを準備
ArrayList users = new ArrayList<>();

int[] icons = {
R.mipmap.ic_launcher,
R.mipmap.ic_launcher,
R.mipmap.ic_launcher
};

String[] names = {
"Makabe",
"Yamada",
"Doujima"
};

String[] locs = {
"Toda",
"Machida",
"Shibuya"
};

for (int i = 0; i < icons.length; i++) {
User user = new User();
user.setIcon(BitmapFactory.decodeResource(
getResources(),
icons[i]
));
user.setName(names[i]);
user.setLoc(locs[i]);
users.add(user);
}

//Adapter - ArrayAdapter

UserAdapter adapter = new UserAdapter(this, 0, users);
//ListViewに表示
myListView.setAdapter(adapter);

//Event
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(
AdapterView<?> adapterView,
View view,//タップされたView
int i, //何番目?
long l//View id
){
TextView name = (TextView) view.findViewById(R.id.name);
Toast.makeText(
MainActivity.this,
Integer.toString(i) + ":" + name.getText().toString(),
Toast.LENGTH_SHORT
).show();
name.setText("Tapped!");
}
});

}

public class UserAdapter extends ArrayAdapter {

private LayoutInflater layoutInflater;

public UserAdapter(Context c, int id, ArrayList users) {
super(c, id, users);
this.layoutInflater = (LayoutInflater) c.getSystemService(
Context.LAYOUT_INFLATER_SERVICE
);
}

@Override
public View getView(int pos, View convertView, ViewGroup parent) {
ViewHolder holder;

if (convertView == null) {
convertView = layoutInflater.inflate(
R.layout.list_item,
parent,
false
);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.name = (TextView) convertView.findViewById(R.id.name);
holder.loc = (TextView) convertView.findViewById(R.id.loc);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();

}

User user = (User) getItem(pos);

holder.icon.setImageBitmap(user.getIcon());
holder.name.setText(user.getName());
holder.loc.setText(user.getLoc());

return convertView;
}
}

static class ViewHolder {
ImageView icon;
TextView name;
TextView loc;
}


public class User {
private Bitmap icon;

public Bitmap getIcon() {
return icon;
}

public void setIcon(Bitmap icon) {
this.icon = icon;
}

public String getLoc() {
return loc;
}

public void setLoc(String loc) {
this.loc = loc;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

private String name;
private String loc;
}
}
 
 

8/12

学習時間
6,00
 
今日やったこと 
  • Androidでウェブブラウザを作ろう (全12回)
  • Androidでクイズアプリを作ろう (全15回)
 
考察
ウェブブラウザアプリやクイズアプリの作成を通して、どのようにうまくボタンなどを配置していくかは理解できた。どのように細かい部分を反映させるっていう部分がまだ弱い。
 
そろそろ、環境を変えて勉強しようか。スタバでもいってやろうかな。
 
明日やること
  • Androidリストビュー入門 (全12回)
  • Androidデータベース入門 (全10回)
  • Androidでメモアプリを作ろう (全22回)
  • Androidフラグメント入門 (全13回)