android studio实验: UI设计 ListView及事件响应

实验目的:

  • 1.学习使用ListView及其事件响应方法。
  • 2.阅读sdk/doc/index脱机文档或者在Android developer开发者网站上,学习使用弹出菜单PopupMenu及其事件响应方法。

实验要求:

  • 1.实现一个列表,其中显示班级学号姓名,提供添加功能
  • 2.对添加的选项,通过长按某项,调用弹出菜单显示删除功能,并删除该选项。

package com.example.shiyan3;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.PopupMenu;

import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    List<String> list;

    ArrayAdapter<String> adapter;

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

        EditText t1=(EditText) findViewById(R.id.edit_1);
        EditText t2=(EditText) findViewById(R.id.edit_2);
        EditText t3=(EditText) findViewById(R.id.edit_3);
        ListView listView = (ListView)findViewById(R.id.listview);
        Button bt= (Button) findViewById(R.id.button);

        list = new ArrayList<String>();
        list.add("班级                     姓名                        学号");

        adapter=new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,list);
        listView.setAdapter(adapter);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                list.add(t1.getText().toString()+"              "+t2.getText().toString()+"              "+t3.getText().toString());
                adapter.notifyDataSetChanged();
            }
        });

        AdapterView.OnItemLongClickListener lclistener=new AdapterView.OnItemLongClickListener()
        {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                popupshow(view,i);
                adapter.notifyDataSetChanged();
                return false;
            }
        };
        listView.setOnItemLongClickListener(lclistener);

    }

    public  void popupshow(View v,int i){//自定义函数
        PopupMenu popup=new PopupMenu(this,v);
        popup.setGravity(Gravity.CENTER_HORIZONTAL);
        MenuInflater inflater=popup.getMenuInflater();
        inflater.inflate(R.menu.popupmenu,popup.getMenu());

        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                if(item.getItemId()==R.id.delete)
                {
                    list.remove(i);
                    adapter.notifyDataSetChanged();
                }
                return false;
            }
        });

        if(i!=0) popup.show();//防止把第一行给删了
    }

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

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/textview1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="班级:"
            android:textSize="20sp" />
        <EditText
            android:id="@+id/edit_1"
            android:layout_height="wrap_content"
            android:layout_width="500px"

            />

    </TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/textview2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:textSize="20sp" />

        <EditText
            android:id="@+id/edit_2"
            android:layout_width="500px"
            android:layout_height="wrap_content"
            android:text="" />

    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/textview3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="学号:"
            android:textSize="20sp" />

        <EditText
            android:id="@+id/edit_3"
            android:layout_width="500px"
            android:layout_height="wrap_content"
            android:text="" />

    </TableRow>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="350px"
        android:layout_marginRight="350px"
        android:text="添加" />

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

    </ListView>

</TableLayout>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/delete"
        android:title="删除"/>
   <item
        android:id="@+id/add"
    android:title="添加"/>

</menu>

到此这篇关于android studio实验: UI设计 ListView及事件响应的文章就介绍到这了,更多相关UI设计 ListView及事件响应内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • android studio组件通信:Intend启动Activity接收返回结果

    实验目的: 熟悉和掌握Android组件间通信的方式和技巧. 实验要求: 1.运行课本的示例程序,理解组件通信的方式和过程2.设计一个主Activity和一个子Activity(Sub-Activity),使用主Activity上的按钮启动子Activity,并将子Activity的一些信息返回给主Activity,并显示在主Activity上. 可以自己设计界面和场景,也可以使用下面提供的内容: 主Activity界面上有一个“登录”按钮和一个用了显示信息的TextView,点击“登录”按钮后

  • android studio 项目 :UI设计高精度实现简单计算器

    UI设计: 实验目的: 自主完成一个简单APP的设计工作,综合应用已经学到的Android UI设计技巧,重点注意合理使用布局.实验要求: 1.完成一个计算器的设计,可以以手机自带的计算器为参考.设计过程中,注意考虑界面的美观性,不同机型的适应性,以及功能的完备性. 2.注意结合Activity的生命周期,考虑不同情况下计算器的界面状态. 3.如有余力,可以考虑实现一个高精度科学计算型的计算器. 实现效果: 整数和浮点数的加减乘除.取余.开根号,异号.清零 计算结果全部实现. 精度保留到小数点后

  • android studio实验: UI设计 ListView及事件响应

    实验目的: 1.学习使用ListView及其事件响应方法. 2.阅读sdk/doc/index脱机文档或者在Android developer开发者网站上,学习使用弹出菜单PopupMenu及其事件响应方法. 实验要求: 1.实现一个列表,其中显示班级学号姓名,提供添加功能 2.对添加的选项,通过长按某项,调用弹出菜单显示删除功能,并删除该选项. package com.example.shiyan3; import androidx.annotation.NonNull; import and

  • Android 开发之dataBinding与ListView及事件

    2015年Google IO大会分布了DataBinding库,能够更快捷便利的实现MVVM结构模式.但是,通过对DataBinding的学习,其中踩过得坑,今天要在这里记录一下.对于DataBinding一些比较基础的使用,在这里就不在记录了,毕竟现在Google一下,出来很多的教程,而且,android developer官网中,也已经对其基本使用方法做了详细介绍,有英语基础的童鞋,还是去看比较官方的文章.如果英文基础不太好的,https://realm.io/cn/news/data-bi

  • Android studio button 按钮 四种绑定事件的方法【实例代码】

    Button是Android中一个非常简单的控件,在我们平时的项目中,可以说是非常的常见,使用率也是相当高.下面通过实例代码给大家介绍Android studio button 按钮 四种绑定事件的方法,具体代码如下所示: package com.geli_2.sujie.sujiegeili2testbutton; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.

  • 提升Android应用视觉吸引效果的10个UI设计技巧

    在Android应用开发中,风格和设计或许不是最关键的要素,但它们在决定Android应用成功与否上确实扮演重要的角色.以下是10个Android应用的UI设计技巧,还有个附加技巧,能够提供你的Android应用的视觉吸引力. 技巧1:使用大小适当的图像 在图像方面,许多Android应用开发者采用的是大小单一的做法.尽管这会使资源管理变得更为简单,但就应用的视觉吸引力而言,这是个错误的做法.要让应用呈现出最佳的视觉效果,那么就应当针对具体的设备屏幕设计不同的图像.最适当的图像才能构建出最棒的用

  • Android UI设计系列之自定义ListView仿QQ空间阻尼下拉刷新和渐变菜单栏效果(8)

    好久没有写有关UI的博客了,刚刚翻了一下之前的博客,最近一篇有关UI的博客:Android UI设计系列之自定义Dialog实现各种风格的对话框效果(7) ,实现各种风格效果的对话框,在那篇博客写完后由于公司封闭开发封网以及其它原因致使博客中断至今,中断这么久很是惭愧,后续我会尽量把该写的都补充出来.近来项目有个需求,要做个和QQ空间类似的菜单栏透明度渐变和下拉刷新带有阻尼回弹的效果.于是花点时间动手试了试,基本上达到了QQ空间的效果,截图如下: 通过观察QQ空间的运行效果,发现当往上滚动时菜单

  • Android UI设计系列之自定义ViewGroup打造通用的关闭键盘小控件ImeObserverLayout(9)

    转载请注明出处:http://blog.csdn.net/llew2011/article/details/51598682 我们平时开发中总会遇见一些奇葩的需求,为了实现这些需求我们往往绞尽脑汁有时候还茶不思饭不香的,有点夸张了(*^__^*)--我印象最深的一个需求是在一段文字中对部分词语进行加粗显示.当时费了不少劲,不过还好,这个问题最终解决了,有兴趣的童靴可以看一下:Android UI设计之<六>使用HTML标签,实现在TextView中对部分文字进行加粗显示. 之前产品那边提了这样

  • Android UI设计与开发之实现应用程序只启动一次引导界面

    这篇文章算是对整个引导界面开发专题的一个终结了吧,个人觉得大部分的引导界面基本上都是千篇一律的,只要熟练掌握了一个,基本上也就没什么好说的了,要是在今后的开发中遇到了更好玩,更有趣的引导界面,博主也会在这里及时的跟大家分享,今天的内容主要是教大家的应用程序只有在第一次启动的时候显示引导界面,以后在启动程序的时候就不再显示了. 其实要想实现这样的效果,只要使用SharedPreferences类,就会让程序变的非常简单,下面来详细介绍一下这个类的使用方法 一.SharedPreferences的详

  • Android UI设计与开发之使用ViewPager实现欢迎引导页面

    本系列文章都会以一个程序的实例开发为主线来进行讲解,以求达到一个循序渐进的学习效果,这样更能加深大家对于程序为什么要这样写的用意,理论加上实际的应用才能达到事半功倍的效果,不是吗? 最下方有源码的下载地址,几乎源码的每一行都有注释,写的通俗易懂,非常清晰,如有不懂的可以留言,本博主一定尽心尽力,为大家答题解惑,希望大家多多支持,好的,话不多说,让我们回归到今天的正题. 一.实现的效果图 也许是养成了这样一个习惯,每次看别人的代码前,必须要先看实现的效果图达到了一个什么样的效果,是不是跟自己想要实

  • Android dataBinding与ListView及事件详解

    今天来了解一下Android最新给我们带来的数据绑定框架--Data Binding Library.数据绑定框架给我们带来了更大的方便性,以前我们可能需要在Activity里写很多的findViewById,烦人的代码也增加了我们代码的耦合性,现在我们马上就可以抛弃那么多的findViewById.说到这里,有人可能会有个疑问:我使用一些注解框架也可以不用findViewById啊,是的,但是注解注定要拖慢我们代码的速度,Data Binding则不会,官网文档说还会提高解析XML的速度,最主

随机推荐