java - android.util.Pair 示例

标签 java android

   @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,将参数视为数组。您可以在对 execute() 的调用中传递许多对,每个对都成为传递给 doInBackground() 的数组中的一个项目

3) 您可以在对 execute() 的调用中使用它作为速记来避免创建局部变量 p,并且在 doInBackground 中您可以返回 Pair.create() 而不是创建局部结果变量。像这样的东西:

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

    }

关于java - android.util.Pair 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20295526/

相关文章:

java - 使用正则表达式验证

java - Eclipse 编辑器 - 检测另一个文档上的选项卡开关

java - 整数数组开关Android JAva

java - android中TABS的圆角

android - Android Wear 2.0有自己的GCM/FCM注册ID吗?

android - 配置更改后 Fragment.getArguments() 是否返回传递的参数?

java - 从 Linux EXTREME VPS 读取文件时出现文件未找到异常

java - maven-bundle-plugin 中具有相同名称的多个引用

java - 将字符串保存到内部存储并检索它时,换行符会丢失。如何保留换行符?

android - 如何删除android Ice Cream Sandwich 中的软按钮/菜单?