我是android的新手。我正在开发一个项目,我需要在Android手机上提供方向信息。所以,我必须在我的Android屏幕上看到定向消息。我在普通的java中编写了代码并编译,在命令提示下执行。我能够看到我在代码中给出的print语句的输出。所以,我创建了一个新的android项目,然后创建了另一个类并在那里粘贴了我的代码。令我惊讶的是,我在仿真器屏幕上找不到打印语句。而且,当我昨晚尝试做同样的事情时,我能够在eclipse的控制台窗口看到打印语句。但我现在看不到同样的情况。你能解释一下如何让我的打印语句出现在模拟器屏幕上。同时,请告诉我为什么我能在eclipse的控制台窗口看到那些打印语句,我该怎么做才能复制它?我只能在模拟器屏幕上看到Hello World。
以下是一段代码:
`package 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目录中添加一个新类来创建ItsClient4.java。请告诉我如何克服上述错误。
我不能在主功能中使用Toast吗?
答案 0 :(得分:1)
请解释如何让我的打印语句出现在模拟器屏幕上。
使用Toast
在模拟器上显示文字。
像
Toast.makeText(this, "text", Toast.LENGH_LONG).show();
您应该使用logcat
之类的
Log.v("app","text"); and see this in logcat
这也是调试的更好选择。
答案 1 :(得分:0)
用于打印,您可以使用Toast exanple:
Toast.makeText(MainActivity.this, "Hello", Toast.LENGTH_LONG).show();
答案 2 :(得分:0)
就像TGMCians所说的那样,Toast
可以解决问题。
如果您想将其写入LogCat,则可以使用
Log.i(tag, message)
然后,您可以通过转到Window&gt;在Eclipse中的LogCat中查看此内容。显示视图&gt;其他&gt; Android&gt; logcat的
答案 3 :(得分:0)
有很多方法可以获得有关Android的反馈。
解决方案1:
仅在屏幕上显示反馈的活动。 像以下代码一样更改您的创建:
@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 messages持续排序时间段,并在屏幕底部(默认情况下)弹出:
Toast.makeText(context, text, duration).show();
this
如果代码在Activity类Toast.LENGTH_SHORT
或Toast.LENGTH_LONG
解决方案3:
日志消息。
它类似于java代码System.out.println("a message");
这个代码虽然它起作用,但它看起来并不常见。相反,我们使用android native Log class。
Log.v(TAG, "your message here" + and_some_other_variable);
有关调试日志here的更多信息。