android.util.Pair的例子

@Override public void onClick(View view) { Context context = view.getContext(); switch(view.getId()) { case R.id.getGreetingButton: Pair <Context,Integer>p=new Pair(context,1); new RestTask().execute(p); break; } } private class RestTask extends AsyncTask<Pair<Context,Integer>, Void, Pair<Context,String>> { @Override protected Pair doInBackground(Pair<Context,Integer>... p) { String text = "hello"; Pair <Context,String>result=new Pair(p.first,text); return result; } @Override protected void onPostExecute(Pair<Context,String>... p) {toaster(p.first, p.second);} } 

1)你怎么称呼这件事情,它是做什么的?

2)为什么编译器找不到p.first和p.second?

3)你什么时候使用Pair.create(a,b)?

对于1),请参阅http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html – 它实质上是一个可变数量的对你在这里传递。

2)使用p [0] .first和p [0] .second,将参数像数组一样处理。 你可以在你的调用中传递许多对来执行(),并且每个成为传递给doInBackground()的数组中的一个项目。

3)你可以在你的调用中使用execute()作为一个简写来避免创build局部variablesp,并且在doInBackground中你可以返回Pair.create()而不是创build本地结果variables。 就像是:

 switch(view.getId()) { case R.id.getGreetingButton: new RestTask().execute(Pair.create(context,1)); break; }