java:
package com.mayus.crowdwash_android;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.net.URL;
import static com.mayus.crowdwash_android.WebContent.web;
public class Login extends AppCompatActivity {
static Login login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
login = this;
setContentView(R.layout.activity_login);
Button debug = findViewById(R.id.debug);
debug.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent client = new Intent(Login.this, Client.class);
startActivity(client);
}
});
Button signin = Login.getInstance().findViewById(R.id.button3);
signin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println("Klick!");
//...
try {
//CrowdwashUser user = WebContent.getUserFromJson(WebContent.getLoginUser("Mayus", "TallerikIstKaka"));
WebContent web = new WebContent();
String user = web.getUserFromJson("Mayus", "TallerikIstKaka");
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
if (false) {
Intent client = new Intent(Login.getInstance(), Client.class);
Login.getInstance().startActivity(client);
}
}
});
}
public static Login getInstance() {
return login;
}
}
java:
package com.mayus.crowdwash_android;
import android.content.Intent;
import android.os.AsyncTask;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
public class WebContent extends AsyncTask<URL, Integer, JSONObject> {
JSONObject obj;
static WebContent web;
static android.view.View.OnClickListener listener;
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public WebContent() {
web = this;
}
//public String getUserFromJson(String name, String pw) throws Exception {
/**WebContent webContent = new WebContent();
webContent.execute(new URL("http://tallerikyt.ddns.net:5000/login?user=" + "Mayus" + "&pw=" + "TallerikIstKaka"), null, null).get();
//new WebContent().execute(new URL("http://tallerikyt.ddns.net:5000/login?user=" + name + "&pw=" + pw), null, null);
if (obj.getBoolean("error")) {
return "";
} else {
return obj.getString("SessionID");
}**/
// }
/**
public String getUserFromJson(String name, String pw) throws Exception {
new WebContent().execute(new URL("http://tallerikyt.ddns.net:5000/login?user=" + name + "&pw=" + pw), null, null).get();
if (obj.getBoolean("error")) {
return "";
} else {
return obj.getString("SessionID");
}**/
public String getUserFromJson(String name, String pw) throws Exception {
JSONObject data = new WebContent().execute(new URL("http://tallerikyt.ddns.net:5000/login?user=" + name + "&pw=" + pw), null, null).get();
Log.d("From server" , data.toString());
if (data.getBoolean("error")) {
return "";
} else {
return data.getString("SessionID");
}
}
@Override
protected JSONObject doInBackground(URL... urls) {
InputStream is = null;
try {
is = urls[0].openStream();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
System.out.println("Test" + jsonText);
JSONObject json = new JSONObject(jsonText);
obj = json;
return json;
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public static WebContent getWeb() { return web; }
}
07-30 21:00:17.788 15452-15452/com.mayus.crowdwash_android W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.mayus.crowdwash_android.WebContent.getUserFromJson(java.lang.String, java.lang.String)' on a null object reference
at com.mayus.crowdwash_android.Login$2.onClick(Login.java:37)
at android.view.View.performClick(View.java:6291)
at android.view.View$PerformClick.run(View.java:24931)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
07-30 21:00:17.789 15452-15452/com.mayus.crowdwash_android W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Login extends AppCompatActivity {
static Login login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
login = this;
setContentView(R.layout.activity_login);
Button debug = findViewById(R.id.debug);
debug.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent client = new Intent(Login.this, Client.class);
startActivity(client);
}
});
Button signin = Login.getInstance().findViewById(R.id.button3);
signin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println("Klick!");
try {
//CrowdwashUser user = WebContent.getUserFromJson(WebContent.getLoginUser("Mayus", "TallerikIstKaka"));
String user = WebContent.getWeb().getUserFromJson("Mayus", "TallerikIstKaka");
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
if (false) {
Intent client = new Intent(Login.getInstance(), Client.class);
Login.getInstance().startActivity(client);
}
}
});
}
public static Login getInstance() {
return login;
}
}`WebContent.java:
package com.mayus.crowdwash_android;
import android.content.Intent;
import android.os.AsyncTask;
import android.view.View;
import android.widget.Button;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
public class WebContent extends AsyncTask<URL, Integer, JSONObject> {
JSONObject obj;
static WebContent web;
static android.view.View.OnClickListener listener;
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public WebContent() {
web = this;
}
public String getUserFromJson(String name, String pw) throws Exception {
new WebContent().execute(new URL("http://tallerikyt.ddns.net:5000/login?user=" + name + "&pw=" + pw), null, null);
if (obj.getBoolean("error")) {
return "";
} else {
return obj.getString("SessionID");
}
}
@Override
protected JSONObject doInBackground(URL... urls) {
InputStream is = null;
try {
is = urls[0].openStream();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
obj = json;
return json;
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public static WebContent getWeb() { return web; }
}
java:
package com.mayus.crowdwash_android;
import java.io.IOException;
public class CrowdwashUser {
String Name = "";
String SessionID = "";
boolean login = false;
public CrowdwashUser(String name, String session) {
System.out.println("CrowdwashUser");
this.Name = name;
this.SessionID = session;
login = true;
}
public CrowdwashUser() {
login = false;
}
public String getUserName() {
return Name;
}
public String getSessionID() {
return SessionID;
}
public boolean isLogin() {
return login;
}
}
发布于 2018-08-09 14:04:11
调用String user = WebContent.getWeb().getUserFromJson("Mayus", "TallerikIstKaka");方法,WebContent().getWeb()返回静态数据成员,该成员将在WebContent类被创建。
WebContent web=new WebContent();
String user=web.getUserFromJson("Mayus", "TallerikIstKaka");`
https://stackoverflow.com/questions/-100002041
复制相似问题