2.12学习内容 go的map、闭包,andoid的Fragment相关

10 篇文章 0 订阅
7 篇文章 0 订阅

package main

import "fmt"

type Vertex struct {
	Lat, Long float64
}

var m map[string]Vertex

func main() {
	m = make(map[string]Vertex)
	m["Bell Labs"] = Vertex{
		40.68433, -74.39967,
	}
	fmt.Println(m["Bell Labs"])
}

http://tour.golangtc.com/moretypes/15

map创建必须是make得,而不是new出来






http://blog.sina.com.cn/s/blog_487109d101018fcx.html

go中的闭包


闭包函数出现的条件:
1.被嵌套的函数引用到非本函数的外部变量,而且这外部变量不是“全局变量”
2.嵌套的函数被独立了出来(被父函数返回或赋值 变成了独立的个体),
  而被引用的变量所在的父函数已结束


还找到句明言:对象是附有行为的数据,而闭包是附有数据的行为。




近来看了“无闻”的视频教程后对“闭包”有了新的理解
  (对外引用变量其实是 获取了该变量的指针)




package main


import (
"fmt"
)


func main (){
fmt.Println("hell ")
ex := Exfunc(12)
ex()


ex2 := Exfunc(123)
ex2()


ex3 := Exfunc2(123)
ex3()
}


func Exfunc (n int) func (){
sum:=n
a := func () {
fmt.Println(sum+1)
}
return a
}




func Exfunc2 (n int) func (){
return func () {
fmt.Println(n+1)
}
}





http://blog.csdn.net/lmj623565791/article/details/42628537

listfragment的startforresult:

public class ListTitleFragment extends ListFragment
{

	public static final int REQUEST_DETAIL = 0x110;
	private List<String> mTitles = Arrays.asList("Hello", "World", "Android");
	private int mCurrentPos ; 
	private ArrayAdapter<String> mAdapter ; 

	
	@Override
	public void onActivityCreated(Bundle savedInstanceState)
	{
		super.onActivityCreated(savedInstanceState);
		setListAdapter(mAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mTitles));
	}
	
	@Override
	public void onListItemClick(ListView l, View v, int position, long id)
	{
		mCurrentPos = position ; 
		Intent intent = new Intent(getActivity(),ContentActivity.class);
		intent.putExtra(ContentFragment.ARGUMENT, mTitles.get(position));
		startActivityForResult(intent, REQUEST_DETAIL);
	}

	
	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data)
	{
		Log.e("TAG", "onActivityResult");
		super.onActivityResult(requestCode, resultCode, data);
		if(requestCode == REQUEST_DETAIL)
		{
			mTitles.set(mCurrentPos, mTitles.get(mCurrentPos)+" -- "+data.getStringExtra(ContentFragment.RESPONSE));
			mAdapter.notifyDataSetChanged();
		}
	}
}




下面描述一个简单的场景,比如我们某个按钮触发Activity跳转,需要通过Intent传递参数到目标Activity的Fragment中,那么此Fragment如何获取当前的Intent的值呢?

有哥们会说,这个简单?看我的代码(问题代码):

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. public class ContentFragment extends Fragment  
  2. {  
  3.       
  4.     private String mArgument ;   
  5.     public static final String ARGUMENT ="argument";  
  6.     @Override  
  7.     public void onCreate(Bundle savedInstanceState)  
  8.     {  
  9.         super.onCreate(savedInstanceState);  
  10.           
  11.         mArgument = getActivity().getIntent().getStringExtra(ARGUMENT);  
  12.           
  13.     }  

我们直接在Fragment的onCreate中,拿到宿主Activty,宿主Activity中肯定能通过getIntent拿到Intent,然后通过get方法,随意拿参数~~



  1.             getActivity().setResult(ListTitleFragment.REQUEST_DETAIL, intent);  







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值