在Eclipse中,检索信息显示黑屏

时间:2012-02-08 19:53:20

标签: android

所以我是编程的先驱,并且在创建应用程序时遇到了困难,但是从这个网站获得了很多帮助,所以这里再次进行。我试图从登录屏幕显示重新获取的信息,我没有得到任何错误,这里的logcat中没有任何内容是我的代码到目前为止

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Loginretrieve extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    String url = "http://beatswith.us/login.php";

    HttpGet httpGet = new HttpGet(url);
    HttpClient httpClient = new DefaultHttpClient();
    HttpResponse response;
    try {

        response = httpClient.execute(httpGet);

        Object responseString = getResponseString(response);



    } catch (ClientProtocolException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    } catch (IllegalStateException e) {  
        e.printStackTrace();
    }


}

public static String getResponseString(HttpResponse response)
        throws IllegalStateException, IOException {

    String responseString = "";
    BufferedReader in = null;
    try {
        in = new BufferedReader(new InputStreamReader(response.getEntity()
                .getContent()));
        StringBuffer sb = new StringBuffer("");
        String line = "";
        String NL = System.getProperty("line.separator");
        while ((line = in.readLine()) != null) {
            sb.append(line + NL);
            Log.d("beats.us.with", "Output");
        }
        in.close();
        responseString = sb.toString();

    } finally {
        if (in != null) {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return responseString;
}
} 

2 个答案:

答案 0 :(得分:1)

你没有设置任何可见的东西。在setContentView(R.layout.main);方法中使用onCreate()。 main.xml文件应该在创建项目时自动生成,它只包含textview但你至少应该能看到一些东西。有关layouts的信息,请参阅此处。

此外,您应该查看AsyncTask的登录内容,任何网络操作都应该在不在UI线程上的不同线程中完成。

示例xml文件

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

<TextView android:text="TextView" android:id="@+id/textView1"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

</LinearLayout>

获取视图

TextView textView = (TextView)findViewById(R.id.textView1);
textView.setText(someValue);

其中someValue是您从服务器获取的数据

答案 1 :(得分:0)

为了显示信息,您必须在xml或代码中定义布局以显示您的信息。

如果您已经拥有此功能,则必须致电

 setContentView(R.layout.your_layout_file);
在你的oncreate中