小编Dan*_*her的帖子

如何在Android/Java中使用Google Volley for HTTP GET请求将响应头字段返回给main方法?

我正在使用谷歌凌空在Android中进行网络连接.我将发出一个http GET请求,并需要返回一个响应头值.我在堆栈溢出时找到了一些访问头字段的答案,但不知道如何将它返回到我的调用点.请看看我的代码,我在其中放了四个数字来解释我的问题.

在(1)我可以打印出我需要的价值.我试图将它保存在类属性(2)中,并且IDE中没有错误.如果我想从那里(3)返回它,我在(4)得到一个NullPointerException.也许它在那之前是一个读写问题.那么我怎样才能得到(1)到(4)的值?非常感谢!

public class Login {

String phpsessid = null;

public Login() {}

public String getSessionId(Context context) {
    RequestQueue queue = Volley.newRequestQueue(context);
    StringRequest sr = new StringRequest(Request.Method.GET, "any url",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    System.out.println(response);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            }) {
        @Override
        protected Response<String> parseNetworkResponse(NetworkResponse response) {
            System.out.println(response.headers.get("Set-Cookie")); (1)
            phpsessid = response.headers.get("Set-Cookie"); (2)
            return super.parseNetworkResponse(response);
        }
    };
    queue.add(sr);
    return phpsessid; (3)
}
Run Code Online (Sandbox Code Playgroud)

}

在主要:

Login login = …
Run Code Online (Sandbox Code Playgroud)

android http-get http-headers android-networking android-volley

7
推荐指数
1
解决办法
7878
查看次数

Android 3级 - ExpandableListView仅在第三级显示行

我需要为android实现一个3级 - ExpandableListView.我已经使用ExpListView作为另一个ExpListView的子节点.两个可扩展列表已经显示,也可以展开.但是只看到第二级,如果我点击第二级组行,箭头会变为展开状态,但第三级的行无法看到.认为外部ExpListView需要刷新以获取第3级行的空间,并且可能还需要重新计算行计数.

关于stackoveflow的类似问题,最多只有一个示例的链接,我不理解/无法适应我的实现的解决方案.

链接是这样的:http://mylifewithandroid.blogspot.de/2011/02/3-level-expandable-lists.html

有没有更简单的解决方案,或任何人都可以轻松解释它.上面链接中的代码对我没有帮助.

解释到目前为止我做了什么:我在ExpandableListView和getGroupView()中设置了BaseExpandableListAdapter,我使用layoutInflater并编写了一个ViewHolder,它为每一行保存了TextView(作为第一级文本).在getChildView()中,我在第二个ViewHolder中使用了另一个ExpandableListView.在那个ExpListView上我还设置了一个BaseExpandableListAdapter,并为这个适配器实现了getGroupView()和getChildView().使用类似于组描述的TextView(作为第二级文本)和此处也是子级(作为第三级文本)完成此操作.

如果它需要我可以明天发布一些代码,需要先在这里准备它.但是一个好的教程也会帮助我.

谢谢.

android expandablelistview

5
推荐指数
1
解决办法
2116
查看次数

Android TextView不在ListView中执行换行(多行文本)

我创建了一个3级的ExpandableListView,并且如果内容太长,则会遇到第二级和第三级使用的TextView不支持换行的问题.如果需要,它应该动态地超过一行.第一级TextView做得很好(自动),我实际上在xml中对所有三个TextView都有相同的设置.接下来是布局xmls,一个带有id groupname的TextView用于第二级(例如下图中的第一个红色X),带有id子名的一个用于第三级(例如,第二级和第三级红色X)图片如下).它应该都像在图片中的绿色钩子.

"singleLine = false"似乎不起作用.还尝试了在其他SO帖子中找到的一些不同的选项,但我所测试的并没有为我工作.像ellipsize一样,滚动horizo​​ntale,不同layout_width等等.唯一有效的是在x 100 dp上设置一个固定的layout_width,但这不是动态的,我是对的?

如果有人可以帮助我,那会很棒.非常感谢!

这是一个截图:

在此输入图像描述

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/childname"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="60dp"
    android:layout_marginLeft="60dp"
    android:textColor="#AAAAAA"
    android:singleLine="false"
    android:text=""
    android:gravity="center_vertical"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/groupname"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="45dp"
    android:layout_marginRight="60dp"
    android:textColor="#555555"
    android:singleLine="false"
    android:gravity="center_vertical"
    android:text=""
    android:textAppearance="?android:attr/textAppearanceMedium" />
Run Code Online (Sandbox Code Playgroud)

android listview multiline textview expandablelistview

2
推荐指数
1
解决办法
5866
查看次数

使用非线程安全随机数生成器在C中对pi monte carlo更正OpenMP pragma

我需要一些帮助来将pi计算与monte carlo方法并行化,使用给定的随机数生成器进行openmp,这不是线程安全的.

第一:这个 SO线程没有帮助我.

我自己尝试的是以下#pragma omp语句.我认为i,x和y变量应该由每个线程初始化,而不应该是私有的.z是圆圈中所有命中的总和,因此它应该在for循环后隐含的barriere之后求和.

认为主要问题是随机数发生器的静态状态变量.我创建了一个调用函数的关键部分,因此每次只有一个线程可以执行它.但Pi解决方案不能随着更高的值而扩展.

注意:我不应该使用其他RNG,但可以对其进行少量更改.

int main (int argc, char *argv[]) {

    int i, z = 0, threads = 8, iters = 100000;
    double x,y, pi;

    #pragma omp parallel firstprivate(i,x,y) reduction(+:z) num_threads(threads)
        for (i=0; i<iters; ++i) {
            #pragma omp critical
            {
                x = rng_doub(1.0);
                y = rng_doub(1.0);
            }
            if ((x*x+y*y) <= 1.0)
                z++;
        }

    pi = ((double) z / (double) (iters*threads))*4.0;
    printf("Pi: %lf\n", pi);;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个RNG实际上是一个包含文件,但由于我不确定我是否正确创建了头文件,我将其集成到另一个程序文件中,因此我只有一个.c文件.

#define RNG_MOD 741025

int rng_int(void) {
    static int …
Run Code Online (Sandbox Code Playgroud)

openmp thread-safety montecarlo prng

2
推荐指数
1
解决办法
5281
查看次数