全部 - 我最近在Google Play上发布了一个Android应用程序.我也把它作为.apk文件在我的网站上提供.我不想问这个,因为我不是Apple的忠实粉丝,但苹果用户可以从我的网站下载我的应用程序.只是想知道我的很多朋友都是苹果用户.谢谢你的时间!
我的代码中遇到了一个非常奇怪的问题.我有一个简单的温度转换器,用户输入摄氏温度,按"转换"后,显示华氏温度.如果用户没有输入有效的内容(任何不是数字或小数的内容),则会显示错误对话框.码:
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String tempFahr = (String) enterDegreesC.getText();
double tempF = Double.valueOf(tempFahr);
double tempFConverted = tempF * 1.8 +32;
displayDegreesF.setText(tempFConverted + " Farenheit");
}
catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(frmTemperatureConverter, "Please Enter a Number.", "Conversion Error", JOptionPane.ERROR_MESSAGE);
}
}
});
Run Code Online (Sandbox Code Playgroud)
相当直接和简单的代码,除了一件事,效果很好.当我输入数字后跟字母"f"或"d"的组合时,不显示错误对话框,并使用字母前面的数字计算华氏温度.这只发生在"d"和"f"(和"D"和"F")而不是任何其他字母.我很难过这个.为什么只有这两个字母放在一个数字后会导致异常不被抛出并继续计算?
我对不同版本的android有不同的布局文件 layout-v13,但我注意到新版本的android(API 11-16)的文件是相同的.有没有办法将它们组合在一起layout-v11,12,13,14,15,16?谢谢你的时间!
所有 - 我最近在 Google Play 上发布了一个应用程序。我想知道是否可以在我的应用程序更新中添加广告,或者我的应用程序是否必须从广告开始?(就像你不能从免费变成 0.99 美元一样)。谢谢你的时间。
全部 - 我试图获取用户的当前位置,而不是在地图上显示覆盖项目.我的问题是用户的位置作为一个位置进入,覆盖数组只接受GeoPoints.这是我尝试过的:
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
GeoPoint point = new GeoPoint.valueOf(location);
OverlayItem overlayitem4 = new OverlayItem(point, "You Are Here", "Boulder, CO");
}
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误GeoPoint.valueOf(location);,特别是:
GeoPoint.valueOf无法解析为类型`
所以我的问题是如何从位置转换为GeoPoint?谢谢大家的时间.
我正在尝试在我的一个应用程序中使用秒表,并且我已经将它用于开始计算秒数并停止计数停止的位置.我的问题是它将在60秒后继续运行.例如,如果我等了两分钟,我会得到120秒.
所以我的问题是我怎样才能做到这一点,一旦秒数达到60分钟,分钟会增加一分钟,秒数会重新开始?
所以不是:120我会得到2点.这是我的代码:
final int MSG_START_TIMER = 0;
final int MSG_STOP_TIMER = 1;
final int MSG_UPDATE_TIMER = 2;
Stopwatch timer = new Stopwatch();
final int REFRESH_RATE = 100;
Handler mHandler = new Handler()
{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case MSG_START_TIMER:
timer.start();
mHandler.sendEmptyMessage(MSG_UPDATE_TIMER);
break;
case MSG_UPDATE_TIMER:
tvTextView.setText(":"+ timer.getElapsedTimeSecs());
mHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIMER,REFRESH_RATE);
break;
case MSG_STOP_TIMER:
mHandler.removeMessages(MSG_UPDATE_TIMER);
timer.stop();
tvTextView.setText("");
break;
default:
break;
}
}
};
Run Code Online (Sandbox Code Playgroud)
也是:
public void start(View v) {
mHandler.sendEmptyMessage(MSG_START_TIMER);
}
public void stop(View v) { …Run Code Online (Sandbox Code Playgroud) 当我试图在我的Android Facebook应用程序上发布链接时,缩略图是错误的.它是来自网站的随机图像.我有:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "my google play link");
startActivity(Intent.createChooser(intent, "Share with"));
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
全部 - 我有一个TextWatcher格式化EditText为货币格式:
private String current = "";
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(!s.toString().equals(current)){
editText$.removeTextChangedListener(this);
String cleanString = s.toString().replaceAll("[$,.]", "");
double parsed = Double.parseDouble(cleanString);
String formated = NumberFormat.getCurrencyInstance().format((parsed/100));
current = formated;
editText$.setText(formated);
editText$.setSelection(formated.length());
editText$.addTextChangedListener(this);
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,问题是我EditText只需要整数,所以我不是用户能够输入美分.因此,与12.34相比,我想要的不是0.1比0.12而不是1.23.如何摆脱小数点但保留逗号?谢谢.
可能重复:
Java中的USD货币格式
全部 - 我有一个小问题,我的应用程序在输入经过一个等式后输出一个答案,并四舍五入到小数点后的两个小数位.我的问题是,如果这个数字出现甚至是12.80美元,输出看起来像12.8美元.我希望它看起来像12.80美元.不是最大的交易,但我处于开发的最后阶段,并希望清理它看起来不错.这是我的一些代码:
Float result2 = result / l3;
double data2 = result2;
int decimalPlaces2 = 2;
double roundBase2 = Math.pow(10, decimalPlaces2);
data2 = (double)(Math.round(data2 * roundBase2)) / roundBase2;
answer.setText("$" + Double.toString(data2));
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间!
我是Android开发的新手,正在开发一个简单的练习项目,用户在两个EditText字段中输入一个数字并按下标有"Calculate"的按钮,并显示两个数字的总和.这是我到目前为止的代码,但我不知道如何添加两个字符串值并将其输出到名为"answer"的TextView字段:
public void calNumbers(View view) {
EditText text = (EditText)findViewById(R.id.edit_number1);
String value = text.getText().toString();
EditText text2 = (EditText)findViewById(R.id.edit_number2);
String value2 = text2.getText().toString();
TextView answer = (TextView) findViewById(R.id.answer);
}
Run Code Online (Sandbox Code Playgroud) 全部 - 当我尝试打开keytool(通过在我的JDK的bin文件中双击它)时,窗口会弹出但是关闭的速度非常快.我查看了这个问题并尝试从命令行运行它,但遇到了这个问题
我输入的所有内容都没问题,或者我还能尝试其他什么吗?
全部 - 对不起,我的标题太长了,我找不到任何其他方式来表达。所以,我有一个EditText,当只剩下一个字符时(我可以通过 a 监视它TextWatcher)我想禁用退格键。这是我到目前为止所拥有的:
editText$.addTextChangedListener(new TextWatcher() {
private String current = "";
String one = "1";
String empty = one; //Right now only set to "1" but want to set to "[any character]"
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void afterTextChanged(Editable s) {
if (s.toString().equals(empty)) {
editText$.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DEL){
return true; //Disable backspace key here
} …Run Code Online (Sandbox Code Playgroud)