-1

我是安卓新手。我正在做一个项目,我需要在 android 手机上提供方向信息。所以,我必须在我的安卓屏幕上看到定向消息。我已经用普通的 java 编写了代码并编译,在命令提示符下执行。我能够看到我在代码中给出的打印语句的输出。所以,我创建了一个新的 android 项目,然后创建了另一个类并将我的代码粘贴到那里。令我惊讶的是,我在模拟器屏幕上找不到打印语句。此外,当我昨晚尝试做同样的事情时,我能够在 eclipse 的控制台窗口上看到打印语句。但我现在不一样了。你能解释一下如何让我的打印语句出现在模拟器屏幕上。同时,请让我知道为什么我能够在 Eclipse 的控制台窗口上看到这些打印语句,我应该怎么做才能复制它们?我只能在模拟器屏幕上看到 Hello World。

下面是一段代码:

`包 com.example.visual;

import org.json.JSONObject;
import org.restlet.data.ChallengeScheme;
import org.restlet.ext.json.JsonRepresentation;
import org.restlet.resource.ClientResource;
import android.widget.Toast;
import android.app.Activity;

public class ItsClient4 extends Activity {

private final static String BASE_URL = "my website url";
private final static String SITE_ID = "67";// Your site ID here
private final static String STATION_MAC[] = {"mac1","mac2"};// The station's MAC address
private final static String NODES[] = {"mac3","mac4","mac5","mac6","mac7","mac8"};
private final static String USERNAME = "usrname";// Your username
private final static String PASSWORD = "pwd";// Your password
public static void main(String[] args) throws Exception {
// Set the request parameters
while(true){
double c[]=new double[6];
double d[]=new double[6];
String url[] =new String[2];
ClientResource itsClient[] = new ClientResource[2];
JsonRepresentation jsonRep[] = new JsonRepresentation[2];
for(int i=0;i<=0;i++){

url[i] = BASE_URL + "sites/" + SITE_ID + "/stations/"+ STATION_MAC[i] + "/";

itsClient[i] = new ClientResource(url[i]);
                 itsClient[i].setChallengeResponse(ChallengeScheme.HTTP_BASIC, USERNAME, PASSWORD);
// Retrieve and parse the JSON representation
jsonRep[i] = new JsonRepresentation(itsClient[i].get());
JSONObject jsonObj = jsonRep[i].getJsonObject();
// Output results

c[i]=jsonObj.getJSONObject("loc").getDouble("lat");
d[i]=jsonObj.getJSONObject("loc").getDouble("lng");

Toast.makeText(ItsClient4.this,"text",20000).show();
//Toast.makeText(ItsClient4.this, "Hello", Toast.LENGTH_LONG).show();
System.out.println(c[i] +" "+d[i]);
if(d[i]>78.142182){
System.out.println("near E8");
}
}


}
}
}

`

请检查上面的代码,请帮助我如何使用 Toast。它仍然给我错误“不能在静态上下文中使用它”。在我的包“visual”中,在 src 目录中,com.example.visual 有两个子目录。一个是MainActivity.java,另一个是ItsClient4.java。MainActivity.java 是自动创建的。我通过在 com.example.visual 目录中添加一个新的 Class 创建了 ItsClient4.java。请告诉我如何克服上述错误。

我不能在 Main 函数中使用 Toast 吗?

4

4 回答 4

1

你能解释一下如何让我的打印语句出现在模拟器屏幕上。

用于Toast在模拟器上显示文本。

喜欢

Toast.makeText(this, "text", Toast.LENGH_LONG).show();

你应该使用logcat喜欢

Log.v("app","text"); and see this in logcat

这也是调试的更好选择。

于 2013-03-14T17:55:48.637 回答
0

对于打印,您可以使用 Toast 示例:

Toast.makeText(MainActivity.this, "Hello", Toast.LENGTH_LONG).show();
于 2013-03-14T17:57:54.850 回答
0

就像 TGMCians 所说,一个Toast人会成功。

如果您想将其写入 LogCat,那么您可以使用

Log.i(tag, message)

然后,您可以通过转到 Window > Show View > Other > Android > LogCat 在 Eclipse 中的 LogCat 中查看它

于 2013-03-14T17:59:19.647 回答
0

有很多方法可以获取有关 android 的反馈。

解决方案 1:

仅在屏幕上显示反馈的 Activity。像以下代码一样更改您的创建:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Create a string with text
    String message = "the text you want to show";

    // here you can write / change your 'message' to 
    //         whatever you want to display on screen...

    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);

    // enable textView to scroll to for long text to be visible
    textView.setMovementMethod(new ScrollingMovementMethod()); 

    // add the text to the textview
    textView.setText(message); 

    // Set the text view as the activity layout
    setContentView(textView);
}

解决方案 2:

Toast 消息持续排序时间段,并在屏幕底部(默认情况下)弹出:

Toast.makeText(context, text, duration).show();
  • 上下文: this如果代码在 Activity 类中
  • 文本:通常是一个字符串
  • 持续时间: Toast.LENGTH_SHORTToast.LENGTH_LONG

解决方案 3:

一条日志消息。它类似于 java 代码System.out.println("a message");,虽然它可以工作,但看到它编写并不常见。相反,我们使用 android 原生Log 类

Log.v(TAG, "your message here" + and_some_other_variable);
  • TAG:一个字符串,以便更容易找到您的日志,可用于过滤。

有关调试日志的更多信息在这里

于 2013-03-14T18:30:37.743 回答