当前位置:  编程技术>移动开发
本页文章导读:
    ▪两个List比较,移除        两个List比较,移除, public static void main(String[] args) { List l_stat=new ArrayList(); l_stat.add(0, "1"); l_stat.add(1, "2"); l_stat.add(2, "3"); l_stat.add(3, "4"); l_stat.add(4, "5"); List l_end=new ArrayList(); .........
    ▪ 解决ScrollView和ListView冲突有关问题        解决ScrollView和ListView冲突问题 今天项目中需要在ScrollView中嵌套ListView来布局,但是这种布局是Google不提倡的,因为在滚动布局中嵌套一个滚动布局时,会出现外层的滚动布局吃掉内层滚动.........
    ▪ startActivityForResult的用法跟demo       startActivityForResult的用法和demo 有时候我们需要把A activity提交数据给B  activity处理,然后把结果返回给A   这种方式在很多种情况需要用到,比如我应用的程序需要有拍照上传的功能。   一种.........

[1]两个List比较,移除
    来源: 互联网  发布时间: 2014-02-18
两个List比较,移除,
public static void main(String[] args) {
		List l_stat=new ArrayList();
		
		l_stat.add(0, "1");
		l_stat.add(1, "2");
		l_stat.add(2, "3");
		l_stat.add(3, "4");
		l_stat.add(4, "5");
		
		
		List l_end=new ArrayList();
		l_end.add(0, "5");
		l_end.add(1, "2");
		l_end.add(2, "3");
		
		//在l_stat中查找,是否有值存在l_end中,有则移除。
		
		for(int i=0;i< l_stat.size();i++){
			
			String str=(String) l_stat.get(i);
			for(int k=0;k < l_end.size(); k++){
				String str_end=(String)l_end.get(k);
				if((str).equals(str_end) ){
					l_stat.remove(i);
					i=i-1;//移除一个,i需要减一
				}
			}
		}
		
		
		for(int i=0;i< l_stat.size();i++){
			System.out.println(l_stat.get(i));
		}
		
		
		/*-------------------------------------------------*/
//		for(int i=0;i< l_stat.size();i++){
//			//System.out.println(l_stat.get(i));
//			String a="";
//			String str=(String) l_stat.get(i);
//			for(int k=0;k < l_end.size(); k++){
//				if(i == k){
//					a="have";
//					str=(String) l_end.get(k)+"----";
//					//System.out.println("k--------"+l_end.get(k));
//					break;
//				}
//			}
//		}
	}


    
[2] 解决ScrollView和ListView冲突有关问题
    来源: 互联网  发布时间: 2014-02-18
解决ScrollView和ListView冲突问题
今天项目中需要在ScrollView中嵌套ListView来布局,但是这种布局是Google不提倡的,因为在滚动布局中嵌套一个滚动布局时,会出现外层的滚动布局吃掉内层滚动布局的滚动事件,这样的结果是会出现两种问题:
1、导致内部控件的高度显示不完整,出现只显示部分内容的情况。
2、当内层的ListView内容很多时,外层的ScrollView显示的定位可能不是顶层显示,而是显示底部。
解决办法是参考网上各位大侠的代码而来,本人水平有限,特此记录。

上代码:
布局文件:goodsorder.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/white" >
<ScrollView 
    android:id="@+id/scrollview"
    android:scrollbars="none"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
	<LinearLayout
		android:id="@+id/sixline"
		android:orientation="vertical"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_margin="5dp"
		>
		<TextView
		    android:id="@+id/cardMessagetext"
		    android:layout_width="wrap_content"
		    android:layout_height="wrap_content"
		    android:textColor="#000000"
		    android:textSize="16sp"
		    android:text
		    />
		<TextView
		    android:id="@+id/cardMessage"
		    android:textColor="#000000"
		    android:textSize="14sp"
		    android:layout_width="wrap_content"
		    android:layout_height="wrap_content"
		    />
	</LinearLayout>
	<ListView 
		android:id="@+id/goodsList"
		android:fillViewport="true"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		/>
    </LinearLayout>
</ScrollView>
</RelativeLayout>


ListView中Item的布局:goodsOrderList.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
	    android:id="@+id/title"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:textColor="#000000"
	    android:textSize="14sp"
	    />
    <TextView
	    android:id="@+id/ordersn"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:textColor="#000000"
	    android:textSize="14sp"
	    />
     <TextView
	    android:id="@+id/orderamounttext"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:textColor="#000000"
	    android:textSize="14sp"
	    android:paddingLeft="20dp"
	    />
    <TextView
	    android:id="@+id/orderamount"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:textColor="#000000"
	    android:textSize="14sp"
	    />
</LinearLayout>


最重要的是代码部分了,下面是主要的代码


public class GoodsOrderActivity extends Activity {
    /** Called when the activity is first created. */
	private ListView goodsView; //商品简单信息显示
	private ScrollView scrollView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.goodsorder);
        SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.goodsOrderList,
				  new String[]{"title","ordersn","orderamounttext","orderamount"},
				  new int[]{R.id.title,R.id.ordersn,R.id.orderamounttext,R.id.orderamount});
	goodsView = (ListView)findViewById(R.id.goodsList);
	goodsView.setAdapter(adapter);

	setListViewHeight(goodsView);//设置listview的高度,在设置adapter之后设置高度
	
        scrollView = (ScrollView)findViewById(R.id.scrollview);

        scrollView.post(runnable);//设置scrollView的显示位置
	}
    /**
     * 设置Listview的高度
     */
    public void setListViewHeight(ListView listView) { 
        ListAdapter listAdapter = listView.getAdapter();  
        if (listAdapter == null) { 
            return; 
        } 
        int totalHeight = 0; 
        for (int i = 0; i < listAdapter.getCount(); i++) { 
            View listItem = listAdapter.getView(i, null, listView); 
            listItem.measure(0, 0); 
            totalHeight += listItem.getMeasuredHeight(); 
        } 
        ViewGroup.LayoutParams params = listView.getLayoutParams(); 
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
        listView.setLayoutParams(params);
    }
    /**
     * 设置scrollview显示位置,解决scrollview嵌套listview页面过长时显示问题
     */
    private Runnable runnable = new Runnable() {   
    	   
        @Override   
        public void run() {   
        	GoodsOrderActivity.this.scrollView.scrollTo(1,1);// 改变滚动条的位置   
        }   
    }; 
/**
*获取listview数据
*/
private List<Map<String, Object>> getData() {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		List<Map<String,Object>> cartGoodsList = getCartGoods();
		Map<String, Object> map = new HashMap<String, Object>();
			map.put("orderamounttext", "数量:");
			map.put("ordersn", "价格:");
			map.put("title", "title");
			map.put("orderamount","numberText");
			list.add(map);
		return list; 
}



1、解决显示高度问题思路是:获取ListView中Item每一行的高度,然后算出总高度,最后给ListView设置一下高度,这样系统就知道了ListView的高度。
2、解决显示定位的问题,是设置ScrollView.scrollTo(),但是此方法在onCreate()方法中使用时,必须的另开一个线程,因为此方法,需要在ScrollView中的内容完全加载之后,才会调用,在onCreate()方法没结束之前,ScrollView中的内容是没有完全加载的。
所以需要另开一个线程。

以上观点仅属个人观点,不一定正确,高手莫笑....

    
[3] startActivityForResult的用法跟demo
    来源: 互联网  发布时间: 2014-02-18
startActivityForResult的用法和demo

有时候我们需要把A activity提交数据给B  activity处理,然后把结果返回给A

 

这种方式在很多种情况需要用到,比如我应用的程序需要有拍照上传的功能。

 

一种是  我的应用程序 〉调用系统相机〉拍照〉关闭系统相机〉返回拍照后的照片到我的应用程序

 

 

 

 

启动一个ForResult的意图:

Intent intent = new Intent(MainAcitvity.this,
      RequestActivity.class);
    //发送意图标示为REQUSET=1
    startActivityForResult(intent, REQUSET);

 

B Activity处理数据:

 

Intent intent=new Intent();
    intent.putExtra(KEY_USER_ID, et01.getText().toString());
    intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
setResult(RESULT_OK, intent);
 finish();

 

那么startActivityForResult如何使用呢:

 

package com.cn.activityresult.demo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainAcitvity extends Activity {

	private Button btn01;
	private TextView tv01;
	public static final int REQUSET = 1;

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		//requestCode标示请求的标示   resultCode表示有数据
		if (requestCode == MainAcitvity.REQUSET && resultCode == RESULT_OK) {
			String str = "账号"
					+ data.getStringExtra(RequestActivity.KEY_USER_ID) + "\n"
					+ "密码"
					+ data.getStringExtra(RequestActivity.KEY_USER_PASSWORD);
			tv01.setText(str);
		}
		Toast.makeText(
				this,
				"requestCode=" + requestCode + ":" + "resultCode=" + resultCode,
				Toast.LENGTH_LONG).show();
	}

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		btn01 = (Button) findViewById(R.id.btn01);
		tv01 = (TextView) findViewById(R.id.tv01);
		btn01.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainAcitvity.this,
						RequestActivity.class);
				//发送意图标示为REQUSET=1
				startActivityForResult(intent, REQUSET);
			}
		});

	}
}

 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class RequestActivity extends Activity {
	
	private Button btn01;
	private EditText et01;
	private EditText et02;
	public static final String KEY_USER_ID="KEY_USER_ID";
	public static final String KEY_USER_PASSWORD="KEY_USER_PASSWORD";
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.request_activity);
        btn01=(Button)findViewById(R.id.btn01);
        et01=(EditText)findViewById(R.id.et01);
        et02=(EditText)findViewById(R.id.et02);
        
        
        btn01.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent=new Intent();
				intent.putExtra(KEY_USER_ID, et01.getText().toString());
				intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
		        setResult(RESULT_OK, intent);
		        finish();
			}
		});         
    }
}

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
java/j2ee iis7站长之家
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3