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中Email未设置账户的情况下发送mailto异常
  2. Android中选择账户
  3. TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
  4. android取得账户(邮件地址)
  5. 实用技术经验分享:《Android账户同步备份框架》| 盛大乐众ROM 郭
  6. 【幻灯片分享】Android账户同步备份框架 | 盛大乐众ROM 郭振 | A
  7. Android之系统自带的文字外观设置及实际显示效果图 android:text
  8. Android中gravity的各种效果图
  9. Android中使用Gallery_tabhost来实现标签效果图源码

随机推荐

  1. 前端工程师想要做一个Vue-ts后台管理系统
  2. kubernetes生产实践之mysql
  3. 使用supervisor 管理logstash
  4. ProBuilder快速原型开发技术 ---模型精细
  5. 数字孪生与物联网(IoT)底层伴生技术的强联
  6. RHEL7 root 开启FTP服务
  7. 如何解决Plao Alto防火墙的V*P*N客户端Gl
  8. Nginx编译报错解决方法
  9. ceph-块设备部署
  10. postgresql12 流复制搭建