String src = "0.0-2.013896591961E-04-1.136868377216E-12";
Pattern p = Pattern.compile("\\d+\\.\\d+(E-\\d+)?");
Matcher m = p.matcher(src);
while (m.find()) {
try {
double value = Double.parseDouble(m.group(0));
System.out.println(value);
} catch (Exception ex) {
ex.printStackTrace();
}
}
interface DoRequestInterface {
void execute(String url, DoRequesCallback callback);
}
interface DoRequesCallback {
void successReq(JSONObject response);
void errorReq(VolleyError error);
}
public abstract class DoRequestClass implements DoRequestInterface {
@Override
public void execute(String url, DoRequesCallback callback) {
RequestQueue queue = Volley.newRequestQueue(context);
final WeakReference<DoRequesCallback> weakCallback = new WeakReference<DoRequesCallback>(callback);
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
DoRequesCallback callback = weakCallback.get();
if (callback != null) {
callback.successReq(response);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
DoRequesCallback callback = weakCallback.get();
if (callback != null) {
callback.errorReq(error);
}
}
});
queue.add(jsObjRequest);
}
}
public class MainActivity extends AppCompatActivity implements DoRequesCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DoRequestClass doRequestClass = new DoRequestClass();
doRequestClass.execute("http://myserver.local", this);
}
});
}
@Override
public void successReq(JSONObject response){
txtDisplay.setText("Response => "+response.toString());
}
@Override
public void errorReq(VolleyError error){
txtDisplay.setText("Error => "+error.toString());
}
}
enter.addTextChangedListener(new TextWatcher() {
private boolean mFormating;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!mFormating) {
mFormating = true;
if(enter.getText().length() != 0) {
String ss= s.toString();
if (!ss.endsWith("$")) {
ss= ss + "$";
enter.setText(ss);
}
} else {
result.setText(null);
}
mFormating = false;
}
}
});
{"1","3","2" }
уверен, что вы используете JSON неправильно. Если вы хотите передавать объект, то и передавайте JSONObject в виде {"gps_wifi":{"gps":"1", "wifi_mac":"3", "wifi":"2" }}
. Тогда порядок значений не будет иметь роли. Вообще для этих целей удобно использовать Gson. Тогда добавление вашего объекта будет выглядеть как:new Gson().toJson(new temp_class_gps_wifi("1","2","3"))
new Gson().fromJson(json, temp_class_gps_wifi.class)
public class Main extends Activity {
private ImageView image;
private Button button;
private Animation anim1;
private Animation anim2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image = (ImageView)findViewById(R.id.images);
button = (Button)findViewById(R.id.button);
// получаем обе анимации
anim1 = AnimationUtils.loadAnimation(this, R.anim.anim1);
anim2 = AnimationUtils.loadAnimation(this, R.anim.anim2);
// устанавливаем первый обработчик
button.setOnClickListener(firstButtonListener);
// запускаем первую анимацию
image.startAnimation(anim1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
View.OnClickListener firstButtonListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// запускаем вторую анимацию
image.startAnimation(anim2);
// меняем обработчик нажатия кнопки на второй
button.setOnClickListener(secondButtonListener);
}
}
View.OnClickListener secondButtonListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// запускаем первую анимацию
image.startAnimation(anim1);
// возвращаем первый обработчик нажатия кнопки
button.setOnClickListener(firstButtonListener);
}
}
}
<android.support.v7.widget.CardView....
Calendar myCal = new GregorianCalendar(2014, 1, 12); // устанавливаем нужную нам дату
myCal.add(Calendar.DAY_OF_YEAR, 4); // добавляем четыре дня
myCal.add(Calendar.HOUR, 10); // и ещё плюсуем 10 часиков сверху
Date newDate = myCal.getTime(); // ну и получаем новую дату