Android 元件 Adapter、GridView
1.基本應用:
使用介紹: GridView網格視圖,並運用Adapter放入資料
我們開始來實現這個功能吧
Layout
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:weightSum="1"
tools:context="com.example.app_bingo.MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onclick"
android:text="洗牌" />
<GridView
android:id="@+id/gridView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="0.83"
android:numColumns="5" />
</LinearLayout>
|
JAVA
|
package com.example.app_bingo;
import android.content.Context;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.GridView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MainActivity extends AppCompatActivity {
//先宣告你會使用到的
private Context context;
private GridView gridView;
private List<Integer> list;
private ArrayAdapter<Integer> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
gridView = (GridView) findViewById(R.id.gridView);
//創造出一個陣列,並放入資源
list = new ArrayList<>();
for (int i = 1; i <= 25; i++) {
list.add(i);
}
//創造出一個Adapter
adapter = new ArrayAdapter<Integer>(context, android.R.layout.simple_dropdown_item_1line, list);
//設定adapter到gridView中
gridView.setAdapter(adapter);
//當我的gridView ,設定可點擊,並引發一個事件
//這邊非常的重要,因為不同的View,set的東西不太一樣
// Spinner就要.setOnItemSelectedListener();
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//如果 當我點擊下去,我就Toast.內容
Toast.makeText(context, list.get(position).toString(), Toast.LENGTH_LONG).show();
}
});
}
public void onclick(View view) {
//洗牌的功能
Collections.shuffle(list);
//刷新資料
adapter.notifyDataSetChanged();
}
}
|
2.延伸應用:遊戲
使用介紹:
我們開始來實現這個功能吧
Layout
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.app_bingo.MainActivity"
android:orientation="vertical"
android:weightSum="1">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<Button
android:onClick="onclick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="開始遊戲"
android:id="@+id/button" />
<Chronometer
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chronometer"
android:layout_weight="0.68"
android:textSize="30dp" />
</LinearLayout>
<GridView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/gridView"
android:layout_gravity="bottom"
android:numColumns="5"
android:layout_weight="0.83" />
</LinearLayout>
|
JAVA
|
package com.example.app_bingo;
import android.content.Context;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.GridView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Context context;
private GridView gridView;
private List<Integer> list;
private ArrayAdapter<Integer> adapter;
private Button button;
private Chronometer chronometer;
private int number = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
gridView = (GridView) findViewById(R.id.gridView);
button=(Button)findViewById(R.id.button);
chronometer = (Chronometer) findViewById(R.id.chronometer);
//設定畫面 gridView是隱藏的
gridView.setVisibility(View.INVISIBLE);
list = new ArrayList<>();
for (int i = 1; i <= 25; i++) {
list.add(i);
}
adapter = new ArrayAdapter<Integer>(context, android.R.layout.simple_dropdown_item_1line, list);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
});
}
public void onclick(View view) {
Collections.shuffle(list);
adapter.notifyDataSetChanged();
//時鐘基本的設定
chronometer.setBase(SystemClock.elapsedRealtime());
//開始
chronometer.start();
//設定標題
setTitle("開始遊戲");
//改變按鈕的文字
button.setText("開始倒數");
//設定gridView為隱藏
gridView.setVisibility(View.VISIBLE);
}
}
|
沒有留言:
張貼留言