package com.example.scroll;

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

import com.example.scroll.GridAdapter.ViewHolder;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class MainActivity extends Activity {

ScrollView scroll;
String[] texts = new String[] { "无线", "通话设置", "声音", "显示", "位置", "应用", "账户",
"隐私权", "存储", "语言", "游戏", "娱乐", "电影", "音乐", "辅助功能", "日期" };
ImageView image;
TestListView list;
TestListView list2;
ImageView image2;
LinearLayout.LayoutParams lp;
private Button btnClick;
private List<HashMap<String, Object>> listValue = new ArrayList<HashMap<String, Object>>();
private int count = 0;
private GridAdapter adapter;

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

void init() {
list = (TestListView) findViewById(R.id.list);
list2 = (TestListView) findViewById(R.id.list2);
image = (ImageView) findViewById(R.id.image);
image2 = (ImageView) findViewById(R.id.image2);

btnClick = (Button) findViewById(R.id.btn_add);
btnClick.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

HashMap<String, Object> map = new HashMap<String, Object>();
map.put("cai_liao", "材料"+count);
map.put("shu_liang", "数量"+count );
count++;
listValue.add(map);
adapter.notifyDataSetChanged();
}
});
adapter = new GridAdapter(this, listValue);
list.setAdapter(adapter);
list2.setAdapter(new SencondAdapter(this, texts));
scroll = (ScrollView) findViewById(R.id.scroll);
scroll.requestChildFocus(image, null);

}

public class GridAdapter extends BaseAdapter {

Activity context;
List<HashMap<String, Object>> mListValue;

public GridAdapter(Activity context, List<HashMap<String, Object>> listValue) {
this.context = context;
this.mListValue = listValue;
}

@Override
public int getCount() {
return mListValue.size();
}

@Override
public Object getItem(int position) {
return position;
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {

convertView = context.getLayoutInflater().inflate(
R.layout.item, null);
holder = new ViewHolder();
holder.btnDel = (Button) convertView
.findViewById(R.id.btn_del);
holder.tvCaiLiao = (TextView) convertView
.findViewById(R.id.tv_cai_liao);
holder.tvShuLiang = (TextView) convertView
.findViewById(R.id.tv_shu_liang);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
HashMap<String, Object> map = new HashMap<String, Object>();
map = mListValue.get(position);
String caiLiao = (String) map.get("cai_liao");
String shuLiang = (String) map.get("shu_liang");

holder.tvCaiLiao.setText(caiLiao + "步骤" + position);
holder.tvShuLiang.setText(shuLiang);

holder.btnDel.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
mListValue.remove(position);
adapter.notifyDataSetChanged();
}
});


return convertView;
}

class ViewHolder {
Button btnDel;
TextView tvCaiLiao, tvShuLiang;
}

}

}


package com.example.scroll;

import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class SencondAdapter extends BaseAdapter {

Activity context;
String[] mTexts;

public SencondAdapter(Activity context, String[] texts) {
this.context = context;
this.mTexts = texts;
}

@Override
public int getCount() {
return mTexts.length;
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {

convertView = context.getLayoutInflater().inflate(R.layout.sencond_item,
null);
holder = new ViewHolder();

holder.text = (TextView) convertView.findViewById(R.id.grid_text);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(mTexts[position]);
return convertView;
}

class ViewHolder {
TextView text;
}

}



package com.example.scroll;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

public class TestListView extends ListView {
public TestListView(Context context) {
super(context);
}

public TestListView(Context context, AttributeSet attrs) {
super(context, attrs);
}

public TestListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, expandSpec);
}
}



activity_main.xml

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

<ScrollView
android:id="@+id/scroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdgeLength="0dp"
android:scrollbars="none" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>

<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:padding="2dp"
android:scaleType="centerCrop"
android:visibility="gone"
android:src="@drawable/ic_launcher" />

<com.example.scroll.TestListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdgeLength="0dp"
android:scrollbars="none" />
<Button
android:id="@+id/btn_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="添加"
/>
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>

<ImageView
android:id="@+id/image2"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:padding="2dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher" />

<com.example.scroll.TestListView
android:id="@+id/list2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdgeLength="0dp"
android:scrollbars="none" />
</LinearLayout>
</LinearLayout>
</ScrollView>

</LinearLayout>

item.xml

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

<Button
android:id="@+id/btn_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除"
/>

<TextView
android:id="@+id/tv_shu_liang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />

<TextView
android:id="@+id/tv_cai_liao"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/tv_shu_liang"
android:layout_toRightOf="@id/btn_del" />

</RelativeLayout>

sencond_item.xml

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

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

</RelativeLayout>

效果图:

更多相关文章

  1. Android(安卓)学习之CalendarManager日历管理工具类
  2. android 服务service里面出Toast
  3. android 三级联动开源框架用法
  4. Android(安卓)的开源电话/通讯/IM聊天项目全集
  5. Android中选择账户
  6. 关于android中Email未设置账户的情况下发送mailto异常
  7. android 第一次运行应用的引导界面
  8. GridView 实现水平拖拉效果
  9. GridView 实现水平拖拉效果

随机推荐

  1. Android使用LocalSocket抓取数据
  2. 【Android UI】Android颜色系大全
  3. 图解IntelliJ IDEA 13版本对Android SQLi
  4. Android(安卓)使用 AIDL 实现进程间通信,
  5. Android漫游记(1)---内存映射镜像(memory
  6. Android(安卓)Dialog 全屏
  7. Android基本框架笔记
  8. Android 开发简介-系统架构
  9. android使用文件进行存储
  10. Android 面试题总结之Android 进阶(二)