该程序是一个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 1863可以通过一个列表来维护所有的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 9821:如果要使用全局文件,可以把变量放入Applacat ... -
Android开发之编程中15个很有用的代码片段
2011-11-15 14:23 9761:查看是否有存储卡插入 String status ... -
keytool生成数字证书
2011-11-01 14:03 1103JDK中keytool常用命令-genkey 在用户主目录中创 ... -
android中的http访问方式
2011-09-27 16:40 1648Android网络编程之Http通信 原创作品,允许 ... -
android 开发之ratingbar
2011-09-21 16:25 2166RatingBar组件是一个打分组件,主要用于对应用打分,下面 ... -
android开发之Spinner组件
2011-09-21 08:54 2585Spinner组件组要用显示一个下拉列表,在使用中需要用到适配 ... -
android基础开发之sharedPreference
2011-09-17 17:39 2029SharePreference存储技术在android中主要应 ... -
eclipse中查看android的SDK源代码
2011-09-15 15:32 855原理: http://log4think.com/brow ... -
android开发之contentprovider(转)
2011-09-14 17:27 980ContentProvider的作用: 1、为存储和获取数据 ... -
设置android模拟器上网(转)
2011-08-31 11:10 1145很多网友也问到为啥自己在家的PC机可以上网,而运行在PC机上面 ... -
android基础开发之二intent(意图)用法
2011-08-29 15:27 2303android中不同的activity之间的切换主要是通过in ... -
android基础开发之一setContentView用法
2011-08-29 15:05 14684android开发中如果想实现布局页面的跳转可以使用setCo ... -
android连接真实手机
2011-08-29 10:09 1258用实现用真机调试你的程序,整个操作相当的方便简单 1、首先用 ... -
android中各种permissiond详解(转)
2011-08-29 10:04 1133Android应用程序在使用很多功能的时候必须在Mainife ...
相关推荐
5. **Android应用开发综合设计报告**(共80%):报告应详尽展示项目的需求分析、模块划分、业务流程和格式规范。对项目需求的全面解读,以及模块划分的合理性,能够体现项目规划的深度。业务流程的描述应清晰,便于...
本书以Android应用程序的开发为主题,并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程。本书的讲述由浅入深,实例全面并典型,几乎囊括了所有和Android应用相关的项目。全书分为...
内容简介 《Android开发入门与实战》内容上涵盖了用Android开发的大部分场景,从Android基础介绍、... 最后,祝广大开发者的技术日益精进,早日开始Android开发之旅,赶上移动互联网的第一班车,共赢中国3G未来!
- **主题与规模**:“Android应用开发团体赛”旨在促进Android平台上的应用程序创新与团队协作能力,共有80支队伍参与最终角逐,展现出Android开发领域的活力与竞争。 #### 二、决赛时间安排 - **日期与时段**:...
第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 ...
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 入伙过程...
总的来说,这个“仿应用市场的Demo”是一个综合性的Android开发项目,涵盖了从基础的UI设计到复杂的网络通信和数据存储等多方面的技能,对于提升开发者全面的Android开发能力具有极大的帮助。通过完成这样一个项目,...
缘:这个界面主要是进行星座配对分析,男生女生可以选择星座然后来进行配对分析,配对详情包含:配对评分、星座比重、解析、注意事项等。 运势:这个界面蕴含了十二个星座的图片,点开每个图片,会对这个星座的今年...
考核的技术点涵盖了Android开发中的关键组件,如UI、Activity、Service、BroadcastReceiver和ContentProvider,以及资源管理、网络编程、多线程处理、多媒体应用、数据存储和业务逻辑等。 比赛以团队形式进行,每队...
设计和实现一个基于Android客户端的应用市场,需要综合考虑用户体验、功能完善性、安全性以及性能优化等多个方面。通过不断迭代和优化,一个成功的应用市场不仅能满足用户下载需求,还能促进开发者与用户之间的互动...
总的来说,“Android系统热门应用推荐器”是一项集网络爬虫、数据解析、界面设计、用户交互于一体的综合实践项目。它不仅锻炼了开发者对Android系统的理解,还涵盖了网络编程、UI设计、数据处理等多个领域,为开发者...
总的来说,"AppSort"项目涵盖了Android开发的多个核心知识点,包括网络爬虫技术、数据解析、数据库管理、多线程与异步处理、数据结构与算法,以及异常处理和安全性。通过这个项目,开发者可以提升自己的综合技能,...
2018年全国职业院校技能大赛移动互联网应用软件开发赛项竞赛试题(B卷)评分点 V1.xlsx则可能是比赛的评分标准和细则,列出了各个部分的得分点,如需求分析的完整性、代码质量、用户体验设计、程序运行效率等。...
本项目“Android应用源码之中国象棋人机对战”是一个典型的Android应用程序,它展示了如何在Android平台上实现一个功能完备的中国象棋游戏,并且支持人机对战模式。通过分析这个项目的源码,我们可以深入理解Android...
【Android应用开发】 本文主要介绍了基于Android平台设计与实现的一款大学生综合素质测评APP。该应用旨在为高校提供一种高效、公正的大学生综合素质评价方法,以适应高等教育扩招带来的数据管理和处理需求的增长,...
总的来说,安卓平台应用开发中的应用市场和商品展示是一个综合性的过程,涵盖了开发、设计、营销和数据分析等多个方面。通过"chapter05"的学习,开发者不仅可以掌握基本的技术知识,还能了解到如何有效地将应用推向...
综合以上信息,我们可以了解到,这个项目涵盖了Android应用开发的基本流程,包括使用Android Studio的环境设置、Gradle构建系统的运用、模块化开发的理解以及实际的代码编写。开发者可能需要具备Android UI设计(如...
总的来说,"基于Android的宠物商城系统"是一个综合性的Android开发项目,涵盖了从用户界面设计、数据处理到网络通信等多个方面,对于学习Android应用开发和电商系统实现具有很高的参考价值。通过深入研究源码,...
总的来说,虽然这个“android性格测试”应用看似简单,但它综合运用了Android开发的多个方面,包括用户界面设计、数据管理、逻辑处理、测试和发布等,为开发者提供了学习和实践Android技术的机会。