用GridView仿製桌面 佈局仿製 主題報錯問題檢查

代碼如下

package com.example.admin.grid;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{
    private SimpleAdapter simpleAdapter;
    private List<Map<String,Object>> datalist;
    private int[] icon={R.drawable.folder_256px,R.drawable.gear_256px,R.drawable.global_256px,R.drawable.hazard_256px,
            R.drawable.layers_256px,R.drawable.lightbulb_256px,R.drawable.lock_256px,R.drawable.mail_256px,
            R.drawable.meter_256px,R.drawable.phone_256px,R.drawable.paint_256px,R.drawable.scissors_256px};
    private String[] iconName={"folder","gear","goball","hazard","layers","lightbulbb","lock","mail","meter","phone",
    "paint","scissor"};
    private GridView gridView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gridView= (GridView) findViewById(R.id.gridView);
        datalist=new ArrayList<Map<String,Object>>();
        simpleAdapter=new SimpleAdapter(this,getdata(),R.layout.item,new String[]{"image","text"}, new int[]{R.id.imageView,R.id.textView});
        gridView.setAdapter(simpleAdapter);
        gridView.setOnItemClickListener(this);
    }

    private List<Map<String, Object>> getdata() {
        for(int i=0;i<icon.length;i++) {
            Map<String, Object> map =new  HashMap < String, Object>();
            map.put("image",icon[i]);
            map.put("text",iconName[i]);
            datalist.add(map);
        }
        return datalist;
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(this,"我是"+iconName[position],Toast.LENGTH_SHORT).show();
    }
}
兩個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">

    <GridView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/gridView"
        android:numColumns="3"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp" />

</LinearLayout>


<?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"
    android:background="#000000"
    android:gravity="center">

    <ImageView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:id="@+id/imageView" />

    <TextView
        android:layout_marginTop="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="15dp"
        android:textColor="#ffffff"
        android:id="@+id/textView" />
</LinearLayout>

結果如下





當然其中有一個讓我浪費了很多時間的小問題  當我用AndroidStudio自建一個empty工程的時候 我更換主題 到android:theme="@android:style/Theme.Black.NoTitleBar"時候發現報錯了

最後的原因很簡單  MainActivity裏面繼承的並不是Activity 手動更改就好了 

蛋疼


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章