安卓实验一 代码注解

安卓实验一 代码注解

启动雷电模拟器命令 dnplayer.exe connect 127.0.0.1:62001

Layout部分

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/listview"
        android:layout_width="wrap_content"
        android:layout_height="600dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>

仅使用一个ListView 这里使用线性布局调整至合适大小即可

item_simple

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

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="107dp">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_marginStart="33dp"
            android:layout_marginLeft="33dp"
            android:layout_marginEnd="48dp"
            android:layout_marginRight="48dp"
            app:layout_constraintBottom_toTopOf="@+id/guideline"
            app:layout_constraintEnd_toStartOf="@+id/textView"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@mipmap/ic_launcher" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginEnd="99dp"
            android:layout_marginRight="99dp"
            android:layout_marginBottom="681dp"
            android:text="名称"
            android:textSize="25dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/textView3"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/guideline2"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.0" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dp"
            android:layout_marginEnd="246dp"
            android:layout_marginRight="246dp"
            android:layout_marginBottom="650dp"
            android:text="内容"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/guideline2"
            app:layout_constraintTop_toBottomOf="@+id/textView"
            app:layout_constraintVertical_bias="0.0" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginEnd="32dp"
            android:layout_marginRight="32dp"
            android:text="编号"
            app:layout_constraintBottom_toTopOf="@+id/guideline"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.63" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            app:layout_constraintGuide_begin="108dp" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_begin="153dp" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>

根据题目要求,设置一个imageview和三个textview 调整至合适大小

如最终效果的图片显示太大需要约束layout_width与layout_height

另外注意各组件的ID不要重复也不要搞混

Java代码部分

首先使用插件声明Listview(略)

在主线程中定义Listview内容

final int[]heads = new int[]{R.drawable.a,R.drawable.b,R.drawable.c};
        final String[]name = new String[]{"大门","校园","马玉杰"};
        final String[]content = new String[]{"美丽大门","美丽校园","201921111190"};
        final String[]num = new String[]{"001","002","003"};

使用for循环将内容映射至list中

List list = new ArrayList();
        for (int i = 0;i < name.length;i++){
            Map<String,Object> item = new HashMap<>();
            item.put("head",heads[i]);
            item.put("名称",name[i]);
            item.put("内容",content[i]);
            item.put("编号",num[i]);
            list.add(item);
        }

编写SimpleAdapter

SimpleAdapter simpleAdapter = new SimpleAdapter(this,list,R.layout.item_simple,
                new String[]{"head","名称","内容","编号"},
                new int[]{R.id.imageView,R.id.textView,R.id.textView2,R.id.textView3}
                );

适配SimpleAdapter并编写监听器

mListview.setAdapter(simpleAdapter);
        mListview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(getApplicationContext(),"点击了"+num[i],Toast.LENGTH_SHORT).show();
            }
        });

完整的Java代码

package com.example.a013;

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 androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

    private ListView mListview;

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

        final int[]heads = new int[]{R.drawable.a,R.drawable.b,R.drawable.c};
        final String[]name = new String[]{"大门","校园","马玉杰"};
        final String[]content = new String[]{"美丽大门","美丽校园","201921111190"};
        final String[]num = new String[]{"001","002","003"};

        List list = new ArrayList();
        for (int i = 0;i < name.length;i++){
            Map<String,Object> item = new HashMap<>();
            item.put("head",heads[i]);
            item.put("名称",name[i]);
            item.put("内容",content[i]);
            item.put("编号",num[i]);
            list.add(item);
        }

        SimpleAdapter simpleAdapter = new SimpleAdapter(this,list,R.layout.item_simple,
                new String[]{"head","名称","内容","编号"},
                new int[]{R.id.imageView,R.id.textView,R.id.textView2,R.id.textView3}
                );

        mListview.setAdapter(simpleAdapter);
        mListview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(getApplicationContext(),"点击了"+num[i],Toast.LENGTH_SHORT).show();
            }
        });


    }

    private void initView() {
        mListview = (ListView) findViewById(R.id.listview);

    }
}

拓展部分请参考以下文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值