该程序是一个listView跟ratingbar综合的应用示例。先上代码如下:
main.java
import java.util.ArrayList; import java.util.List; import android.app.AlertDialog; import android.app.ListActivity; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RatingBar; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.AdapterView.OnItemSelectedListener; public class Main extends ListActivity { private static String[] applicationNames = new String[] { "多功能日历", "eoeMarket客户端", "耐玩的重力消砖块", "白社会", "电池管家" }; private static String[] authors = new String[] { "张三", "eoemobile", "小费", "ApkHome", "lucyfa" }; private static int[] resIds = new int[] { R.drawable.calendar, R.drawable.eoemarket, R.drawable.brick, R.drawable.whitesociety, R.drawable.terminater }; private static float[] applicationRating = new float[] { (float) 5.0, (float) 5.0, (float) 3.5, (float) 5.0, (float) 4.0 }; String inflater = Context.LAYOUT_INFLATER_SERVICE; LayoutInflater layoutInflater; private RatingAdapter raAdapter; /** * 自定义适配器, * 因为simpleAdapter只支持textView,imagesView,或是想Checkable接口的类,所以这里不能使用; * @author lyj * */ private class RatingAdapter extends BaseAdapter { private Context context; public RatingAdapter(Context context) { this.context = context; //获取扩展对象,用于操作布局文件 layoutInflater = (LayoutInflater) context .getSystemService(inflater); } @Override public int getCount() { return applicationNames.length; } @Override public Object getItem(int position) { return applicationNames[position]; } @Override public long getItemId(int position) { return position; } public void setRating(int position, float rating) { applicationRating[position] = rating; //更新数据 notifyDataSetChanged(); } /** * 设置列表项值,返回定义视图 */ @Override public View getView(int position, View convertView, ViewGroup parent) { //获取布局对象,进行布局文件里的组件操作 LinearLayout linearLayout = (LinearLayout) layoutInflater.inflate( R.layout.main, null); ImageView ivLogo = (ImageView) linearLayout .findViewById(R.id.ivLogo); TextView tvApplicationName = ((TextView) linearLayout .findViewById(R.id.tvApplicationName)); TextView tvAuthor = (TextView) linearLayout .findViewById(R.id.tvAuthor); TextView tvRating = (TextView) linearLayout .findViewById(R.id.tvRating); RatingBar ratingBar = (RatingBar) linearLayout .findViewById(R.id.ratingbar); ivLogo.setImageResource(resIds[position]); tvApplicationName.setText(applicationNames[position]); tvAuthor.setText(authors[position]); tvRating.setText(String.valueOf(applicationRating[position])); ratingBar.setRating(applicationRating[position]); return linearLayout; } } @Override protected void onListItemClick(ListView l, View view, final int position, long id) { View myView = getLayoutInflater().inflate(R.layout.rating, null); final RatingBar ratingBar = (RatingBar) myView .findViewById(R.id.ratingbar); ratingBar.setRating(applicationRating[position]); new AlertDialog.Builder(this).setTitle(applicationNames[position]) .setMessage("给应用程序打分").setIcon(resIds[position]) .setView(myView).setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { raAdapter.setRating(position, ratingBar.getRating()); } }).setNegativeButton("取消", null).show(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); List<View> viewList = new ArrayList<View>(); viewList.add(getLayoutInflater().inflate(R.layout.main, null)); raAdapter = new RatingAdapter(this); setListAdapter(raAdapter); } }
程序中使用到了自定义的适配器,不熟悉adapter的朋友可以先去查阅下资料。
布局文件:
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical"> <ImageView android:id="@+id/ivLogo" android:layout_width="60dp" android:layout_height="60dp" android:src="@drawable/icon" android:paddingLeft="5dp" /> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" android:padding="10dp"> <TextView android:id="@+id/tvApplicationName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16dp" /> <TextView android:id="@+id/tvAuthor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tvApplicationName" android:textSize="14dp" /> </RelativeLayout> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:padding="10dp"> <TextView android:id="@+id/tvRating" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="5.0" /> <RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" style="?android:attr/ratingBarStyleSmall" android:layout_below="@id/tvRating" /> </RelativeLayout> </LinearLayout>
弹出对话框的布局文件:
rating.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical"> <RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5"/> </LinearLayout>
运行结果:
发表评论
-
android中退出整个app应用程序
2012-07-19 13:45 1871可以通过一个列表来维护所有的activity,在需要退出的时候 ... -
有关Activity的Launch mode 以及Intent的setFlags(转载)
2012-05-15 15:02 0Activity有四种加载模式 ... -
android 开发的性能原则
2012-02-29 09:51 0手机的开发由于受到性能,电池等硬件的瓶颈,所以在开发应用的时候 ... -
android开发的9个原则
2011-11-15 14:43 9881:如果要使用全局文件,可以把变量放入Applacat ... -
Android开发之编程中15个很有用的代码片段
2011-11-15 14:23 9821:查看是否有存储卡插入 String status ... -
keytool生成数字证书
2011-11-01 14:03 1111JDK中keytool常用命令-genkey 在用户主目录中创 ... -
android中的http访问方式
2011-09-27 16:40 1666Android网络编程之Http通信 原创作品,允许 ... -
android 开发之ratingbar
2011-09-21 16:25 2174RatingBar组件是一个打分组件,主要用于对应用打分,下面 ... -
android开发之Spinner组件
2011-09-21 08:54 2598Spinner组件组要用显示一个下拉列表,在使用中需要用到适配 ... -
android基础开发之sharedPreference
2011-09-17 17:39 2034SharePreference存储技术在android中主要应 ... -
eclipse中查看android的SDK源代码
2011-09-15 15:32 861原理: http://log4think.com/brow ... -
android开发之contentprovider(转)
2011-09-14 17:27 989ContentProvider的作用: 1、为存储和获取数据 ... -
设置android模拟器上网(转)
2011-08-31 11:10 1156很多网友也问到为啥自己在家的PC机可以上网,而运行在PC机上面 ... -
android基础开发之二intent(意图)用法
2011-08-29 15:27 2311android中不同的activity之间的切换主要是通过in ... -
android基础开发之一setContentView用法
2011-08-29 15:05 14695android开发中如果想实现布局页面的跳转可以使用setCo ... -
android连接真实手机
2011-08-29 10:09 1264用实现用真机调试你的程序,整个操作相当的方便简单 1、首先用 ... -
android中各种permissiond详解(转)
2011-08-29 10:04 1141Android应用程序在使用很多功能的时候必须在Mainife ...
相关推荐
5. **Android应用开发综合设计报告**(共80%):报告应详尽展示项目的需求分析、模块划分、业务流程和格式规范。对项目需求的全面解读,以及模块划分的合理性,能够体现项目规划的深度。业务流程的描述应清晰,便于...
第2章 搭建Android开发环境 2.1 Android开发环境要求 2.2 JDK的安装和配置 2.2.1 安装JDK 2.2.2 配置JDK 2.3 Android SDK的下载和安装 2.3.1 下载Android SDK 2.3.2 安装Android SDK 2.3.3 创建Android虚拟设备 2.4 ...
本书以Android应用程序的开发为主题,并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。本书的讲述由浅入深,实例全面并典型,几乎囊括了所有和Android应用相关的项目。全书分为...
内容简介 《Android开发入门与实战》内容上涵盖了用Android开发的大部分场景,从Android基础介绍、... 最后,祝广大开发者的技术日益精进,早日开始Android开发之旅,赶上移动互联网的第一班车,共赢中国3G未来!
总的来说,这个“仿应用市场的Demo”是一个综合性的Android开发项目,涵盖了从基础的UI设计到复杂的网络通信和数据存储等多方面的技能,对于提升开发者全面的Android开发能力具有极大的帮助。通过完成这样一个项目,...
- **主题与规模**:“Android应用开发团体赛”旨在促进Android平台上的应用程序创新与团队协作能力,共有80支队伍参与最终角逐,展现出Android开发领域的活力与竞争。 #### 二、决赛时间安排 - **日期与时段**:...
4.3 Android开发活动及特色应用 37 4.3.1 开发应用的领域 37 4.3.2 Android Market特色应用一览 38 4.4 你也可以做东家——申请Market账号 43 4.4.1 卖东西要先入伙——准备工作 43 4.4.2 入伙过程...
缘:这个界面主要是进行星座配对分析,男生女生可以选择星座然后来进行配对分析,配对详情包含:配对评分、星座比重、解析、注意事项等。 运势:这个界面蕴含了十二个星座的图片,点开每个图片,会对这个星座的今年...
考核的技术点涵盖了Android开发中的关键组件,如UI、Activity、Service、BroadcastReceiver和ContentProvider,以及资源管理、网络编程、多线程处理、多媒体应用、数据存储和业务逻辑等。 比赛以团队形式进行,每队...
设计和实现一个基于Android客户端的应用市场,需要综合考虑用户体验、功能完善性、安全性以及性能优化等多个方面。通过不断迭代和优化,一个成功的应用市场不仅能满足用户下载需求,还能促进开发者与用户之间的互动...
总的来说,“Android系统热门应用推荐器”是一项集网络爬虫、数据解析、界面设计、用户交互于一体的综合实践项目。它不仅锻炼了开发者对Android系统的理解,还涵盖了网络编程、UI设计、数据处理等多个领域,为开发者...
总的来说,"AppSort"项目涵盖了Android开发的多个核心知识点,包括网络爬虫技术、数据解析、数据库管理、多线程与异步处理、数据结构与算法,以及异常处理和安全性。通过这个项目,开发者可以提升自己的综合技能,...
它不仅涵盖了移动应用开发中常见的技术要点,如UI设计、Android四大组件、网络编程、多线程处理、多媒体应用、手势识别、数据存储和业务逻辑等,而且通过实际比赛的组织形式,让学生有机会将理论知识与实际操作紧密...
2018年全国职业院校技能大赛移动互联网应用软件开发赛项竞赛试题(B卷)评分点 V1.xlsx则可能是比赛的评分标准和细则,列出了各个部分的得分点,如需求分析的完整性、代码质量、用户体验设计、程序运行效率等。...
本项目“Android应用源码之中国象棋人机对战”是一个典型的Android应用程序,它展示了如何在Android平台上实现一个功能完备的中国象棋游戏,并且支持人机对战模式。通过分析这个项目的源码,我们可以深入理解Android...
【Android应用开发】 本文主要介绍了基于Android平台设计与实现的一款大学生综合素质测评APP。该应用旨在为高校提供一种高效、公正的大学生综合素质评价方法,以适应高等教育扩招带来的数据管理和处理需求的增长,...
总的来说,安卓平台应用开发中的应用市场和商品展示是一个综合性的过程,涵盖了开发、设计、营销和数据分析等多个方面。通过"chapter05"的学习,开发者不仅可以掌握基本的技术知识,还能了解到如何有效地将应用推向...
综合以上信息,我们可以了解到,这个项目涵盖了Android应用开发的基本流程,包括使用Android Studio的环境设置、Gradle构建系统的运用、模块化开发的理解以及实际的代码编写。开发者可能需要具备Android UI设计(如...
总的来说,"基于Android的宠物商城系统"是一个综合性的Android开发项目,涵盖了从用户界面设计、数据处理到网络通信等多个方面,对于学习Android应用开发和电商系统实现具有很高的参考价值。通过深入研究源码,...