diff --git a/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java b/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java index d5682dc..f9a5a05 100644 --- a/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java @@ -5,49 +5,108 @@ import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; +import android.widget.AdapterView; +import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; +import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import com.example.cosmosclient.R; -public class AddMemberActivity extends AppCompatActivity { +public class AddMemberActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_add_member); - //各種idを取得 - Button qrButton = findViewById(R.id.addQR); - Button idButton = findViewById(R.id.addID); - Button mailButton = findViewById(R.id.addMail); - TextView groupText=findViewById(R.id.groupName); + private static final String[] scenes = { + "QRコードで追加", + "IDで追加", + "メールで招待" + }; - //QRからメンバー追加の画面遷移処理画面を記述 - qrButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getApplication(), DisplayQRActivity.class); - startActivity(intent); - } - }); - //IDからメンバー追加の画面遷移処理画面を記述 - idButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getApplication(), DisplayQRActivity.class); - startActivity(intent); - } - }); - //Mailからメンバー追加の画面遷移処理画面を記述 - mailButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(getApplication(), DisplayQRActivity.class); - startActivity(intent); - } - }); + // ちょっと冗長的ですが分かり易くするために + private static final int[] photos = { + R.drawable.camera_image, + R.drawable.search_image, + R.drawable.mail_image, - } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_add_member); + + // ListViewのインスタンスを生成 + ListView listView = findViewById(R.id.list_view); + + // BaseAdapter を継承したadapterのインスタンスを生成 + // レイアウトファイル list.xml を activity_main.xml に + // inflate するためにadapterに引数として渡す + BaseAdapter adapter = new ListViewAdapter(this.getApplicationContext(), + R.layout.list, scenes, photos); + + // ListViewにadapterをセット + listView.setAdapter(adapter); + + // クリックリスナーをセット + listView.setOnItemClickListener(this); + + } + + @Override + public void onItemClick(AdapterView parent, View v, + int position, long id) { + + + Intent intent = null; + // clickされたpositionのtextとphotoのID + String selectedText = scenes[position]; + if(selectedText.contains("QR")==true){ + intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); + }else if(selectedText.contains("ID")==true){ + intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); + }else{ + intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); + } + +// Intent intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); + // SubActivityへ遷移 + startActivity(intent); + } +// @Override +// protected void onCreate(Bundle savedInstanceState) { +// super.onCreate(savedInstanceState); +// setContentView(R.layout.activity_add_member); +// //各種idを取得 +// Button qrButton = findViewById(R.id.addQR); +// Button idButton = findViewById(R.id.addID); +// Button mailButton = findViewById(R.id.addMail); +// TextView groupText=findViewById(R.id.groupName); +// +// //QRからメンバー追加の画面遷移処理画面を記述 +// qrButton.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Intent intent = new Intent(getApplication(), DisplayQRActivity.class); +// startActivity(intent); +// } +// }); +// //IDからメンバー追加の画面遷移処理画面を記述 +// idButton.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Intent intent = new Intent(getApplication(), DisplayQRActivity.class); +// startActivity(intent); +// } +// }); +// //Mailからメンバー追加の画面遷移処理画面を記述 +// mailButton.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Intent intent = new Intent(getApplication(), DisplayQRActivity.class); +// startActivity(intent); +// } +// }); +// +// } } diff --git a/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java b/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java new file mode 100644 index 0000000..31b2691 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java @@ -0,0 +1,75 @@ +package com.example.cosmosclient.views; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import com.example.cosmosclient.R; + +public class ListViewAdapter extends BaseAdapter { + static class ViewHolder { + TextView textView; + ImageView imageView; + } + + private LayoutInflater inflater; + private int itemLayoutId; + private String[] titles; + private int[] ids; + + ListViewAdapter(Context context, int itemLayoutId, + String[] scenes, int[] photos) { + super(); + this.inflater = (LayoutInflater) + context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + this.itemLayoutId = itemLayoutId; + this.titles = scenes; + this.ids = photos; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + // 最初だけ View を inflate して、それを再利用する + if (convertView == null) { + // activity_main.xml に list.xml を inflate して convertView とする + convertView = inflater.inflate(itemLayoutId, parent, false); + // ViewHolder を生成 + holder = new ViewHolder(); + holder.textView = convertView.findViewById(R.id.textView); + holder.imageView = convertView.findViewById(R.id.imageView); + convertView.setTag(holder); + } + // holder を使って再利用 + else { + holder = (ViewHolder) convertView.getTag(); + } + + // holder の imageView にセット + holder.imageView.setImageResource(ids[position]); + // 現在の position にあるファイル名リストを holder の textView にセット + holder.textView.setText(titles[position]); + + return convertView; + } + + @Override + public int getCount() { + // texts 配列の要素数 + return titles.length; + } + + @Override + public Object getItem(int position) { + return null; + } + + @Override + public long getItemId(int position) { + return 0; + } +} diff --git a/app/src/main/res/drawable/camera_image.png b/app/src/main/res/drawable/camera_image.png index e5cc4cc..32185f3 100644 --- a/app/src/main/res/drawable/camera_image.png +++ b/app/src/main/res/drawable/camera_image.png Binary files differ diff --git a/app/src/main/res/drawable/mail_image.png b/app/src/main/res/drawable/mail_image.png index 522ef7d..d6c8f82 100644 --- a/app/src/main/res/drawable/mail_image.png +++ b/app/src/main/res/drawable/mail_image.png Binary files differ diff --git a/app/src/main/res/drawable/search_image.png b/app/src/main/res/drawable/search_image.png index 3ae2a32..046dfb3 100644 --- a/app/src/main/res/drawable/search_image.png +++ b/app/src/main/res/drawable/search_image.png Binary files differ diff --git a/app/src/main/res/layout/activity_add_member.xml b/app/src/main/res/layout/activity_add_member.xml index 1660f02..44839a0 100644 --- a/app/src/main/res/layout/activity_add_member.xml +++ b/app/src/main/res/layout/activity_add_member.xml @@ -25,44 +25,81 @@ android:gravity="center" android:text="家族用 グループ" android:textSize="24sp" - android:drawableLeft="@drawable/group_image" app:layout_constraintTop_toBottomOf="@+id/viewName" tools:layout_editor_absoluteX="0dp" /> -