【android编程】Android高级组件实践题

【android编程】Android高级组件实践题

1. 列表和列表视图ListView

1. 布局文件activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="26dp"
        android:text="我喜欢的教科书"/>
    <ListView
        android:id="@+id/list0"
        android:entries="@array/item0"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>

</LinearLayout>

2. array.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="item0">
        <item>第一行代码Android</item>
        <item>Android开发与实践</item>
        <item>疯狂Android讲义</item>
        <item>精通Android Studio</item>
    </string-array>
</resources>

3. java文件

package com.example.bean.myapplication39v1;

import android.app.Activity;
import android.app.ListActivity;
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.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String[] data = new String[]{"第一行代码Android","Android开发与实践","疯狂Android讲义","精通Android Studio"};
        ListView listView;
        ArrayAdapter<String> adapter;
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,data);
        //setListAdapter(adapter);
        listView = (ListView) findViewById(R.id.list0);
        listView.setAdapter(adapter);
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                //通过下标来获取内容
                String str = parent.getItemAtPosition(position).toString();

                Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();

                //position 数据的下标  id 数据的id
                //Toast.makeText(MainActivity.this, "position="+position+"id="+id, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

4. 结果展示

在这里插入图片描述
在这里插入图片描述

2. 网格视图 GridView练习

1. activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <GridView
        android:id="@+id/grid0"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="4">

    </GridView>

</LinearLayout>

2. items.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/image"
        android:paddingLeft="10dp"
        android:scaleType="fitCenter"
        android:layout_width="wrap_content"
        android:layout_height="150dp" />
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:padding="5dp"
        android:layout_gravity="center"/>

</LinearLayout>

3. MainActivity.java

package com.example.bean.myapplicationv2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.SimpleAdapter;

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

public class MainActivity extends AppCompatActivity {
    private int[] imageId = new int[]{R.drawable.m1,R.drawable.m2,R.drawable.m3,
            R.drawable.m4,R.drawable.m5,R.drawable.m6,R.drawable.m7,R.drawable.m8,
            R.drawable.m9,R.drawable.m10,R.drawable.m11,R.drawable.m12};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //View view= this.getLayoutInflater().inflate(R.layout.activity_main, null);
        GridView gridview = (GridView)findViewById(R.id.grid0);
        String[] title = new String[]{"mm1","mm2","mm3","mm4","mm5","mm6","mm7","mm8",
                "mm9","mm10","mm11","mm12"};
        List<Map<String,Object>> listitem = new ArrayList<Map<String, Object>>();
        for(int i=0;i<imageId.length;i++){
            Map<String,Object> map = new HashMap<String, Object>();
            map.put("image",imageId[i]);
            map.put("title",title[i]);
            listitem.add(map);
        }
        SimpleAdapter adapter = new SimpleAdapter(this,listitem,
                R.layout.items,
                new String[]{"title","image"},
                new int[]{R.id.title,R.id.image});
        gridview.setAdapter(adapter);
    }
}

4. 结果展示

在这里插入图片描述
在这里插入图片描述

3. 有图片的ListView列表视图

1.使用所给的水果图片完成有5个选项的ListView。

2.为ListView添加消息响应,在单击某项时,用Toast显示“我喜欢……”,参见附件中的截图。

3.上传基本界面和每项点击后的结果共6张图片或程序运行视频。

1.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView
        android:id="@+id/tv0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我喜欢的水果"
        android:textSize="60dp" />

    <ListView
        android:id="@+id/list0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </ListView>
</LinearLayout>

2. items.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:paddingRight="10dp"
        android:paddingBottom="10dp"
        android:maxWidth="100dp"
        android:maxHeight="100dp"
        android:adjustViewBounds="true" />
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textSize="40dp"
        android:padding="24dp"/>


</LinearLayout>

3.MainActivity.java

package com.example.bean.myapplication39v3;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
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 AppCompatActivity {
    List<Map<String, Object>> listitem = new ArrayList<Map<String, Object>>();
    int[] images = new int[]{R.drawable.apple,R.drawable.banana,R.drawable.blueberry
            ,R.drawable.lemon,R.drawable.pear,R.drawable.pineapple,R.drawable.watermelon};
    String[] title = new String[]{"苹果","香蕉","蓝莓","柠檬","梨","菠萝","西瓜"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        for (int i = 0; i < images.length; i++)
        {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("images", images[i]);
            map.put("title", title[i]);
            listitem.add(map);
        }
        SimpleAdapter adapter = new SimpleAdapter(this
                , listitem
                , R.layout.items
                , new String[]{"images", "title"}
                , new int[]{R.id.image, R.id.title});


        ListView listView = (ListView) findViewById(R.id.list0);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                //通过下标来获取内容
                //String str = parent.getItemAtPosition(position).toString();
                String str = parent.getItemAtPosition(position).toString();
                String mmp = "我喜欢" + title[position]  + "!";

                Toast.makeText(MainActivity.this, mmp, Toast.LENGTH_SHORT).show();
            }
        });

    }
}

4.结果展示

在这里插入图片描述
在这里插入图片描述

发布了83 篇原创文章 · 获赞 37 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xbean1028/article/details/104771559