两个结构相同的MySQL表,但Android java类只能从其中一个表中检索数据
我创建了两个mysql表,分别是“trymarkers”和“05a1ux”。创建两个具有相同结构的表。但是为什么Tab3ReminderActivity.java类只能从表“trymarkers”检索数据,而不能从表“05a1ux”检索数据呢?我是Android Studio的初学者。请帮我解决这个问题~两个结构相同的MySQL表,但Android java类只能从其中一个表中检索数据,java,php,android,mysql,Java,Php,Android,Mysql,我创建了两个mysql表,分别是“trymarkers”和“05a1ux”。创建两个具有相同结构的表。但是为什么Tab3ReminderActivity.java类只能从表“trymarkers”检索数据,而不能从表“05a1ux”检索数据呢?我是Android Studio的初学者。请帮我解决这个问题~ 下面的“Tab3RememberActivity”java类是android studio中显示片段中地图的代码 public class Tab3Reminder extends Fra
下面的“Tab3RememberActivity”java类是android studio中显示片段中地图的代码
public class Tab3Reminder extends Fragment implements
OnMapReadyCallback, GoogleMap.OnMarkerDragListener, GoogleMap.OnMapLongClickListener{
//Our Map
private GoogleMap mGoogleMap;
private String group_id;
View rootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if(rootView != null){
ViewGroup parent = (ViewGroup) rootView.getParent();
if(parent != null)
parent.removeView(rootView);
}
try{
rootView = inflater.inflate(R.layout.tab3reminder, container, false);
//SharedPreferences sharedPreferences1 = getActivity().getSharedPreferences(Config.SHARED_PREF_GROUP, Context.MODE_PRIVATE);
//group_id = sharedPreferences1.getString(Config.GROUP_SHARED_PREF, "Not Available");
SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager()
.findFragmentById(R.id.map1);
mapFragment.getMapAsync(this);
// Starting locations retrieve task
new RetrieveTask().execute();
}catch (InflateException e){
}
return rootView;
}
// Adding marker on the GoogleMaps
private void addMarker(LatLng latlng) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latlng);
markerOptions.title(latlng.latitude + "," + latlng.longitude);
mGoogleMap.addMarker(markerOptions);
}
// Invoking background thread to store the touched location in Remove MySQL server
private void sendToServer(LatLng latlng) {
new SaveTask().execute(latlng);
}
@Override
public void onMapReady(GoogleMap googleMap) {
//Initializing our map
mGoogleMap = googleMap;
//Creating a random coordinate
LatLng sydney = new LatLng(1.858642, 103.085846);
// Setting OnClickEvent listener for the GoogleMap
/*
mGoogleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latlng) {
addMarker(latlng);
sendToServer(latlng);
}
});
*/
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
//Animating the camera
mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(10));
mGoogleMap.setOnMarkerDragListener(this);
//Adding a long click listener to the map
mGoogleMap.setOnMapLongClickListener(this);
if ((ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(getActivity(), android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED)){
mGoogleMap.setMyLocationEnabled(true);
}
}
// Background thread to save the location in remove MySQL server
private class SaveTask extends AsyncTask<LatLng, Void, Void> {
@Override
protected Void doInBackground(LatLng... params) {
String lat = Double.toString(params[0].latitude);
String lng = Double.toString(params[0].longitude);
String strUrl = "http://192.168.1.7/friend3/location_marker_mysql/save.php";
URL url = null;
try {
url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(
connection.getOutputStream());
outputStreamWriter.write("lat=" + lat + "&lng="+lng);
outputStreamWriter.flush();
outputStreamWriter.close();
InputStream iStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new
InputStreamReader(iStream));
StringBuffer sb = new StringBuffer();
String line = "";
while( (line = reader.readLine()) != null){
sb.append(line);
}
reader.close();
iStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
// Background task to retrieve locations from remote mysql server
private class RetrieveTask extends AsyncTask<Void, Void, String>{
@Override
protected String doInBackground(Void... params) {
//String strUrl = "http://192.168.1.7/friend3/location_marker_mysql/retrieve.php?group_id=" + group_id;
String strUrl = "http://192.168.1.7/friend3/location_marker_mysql/retrieve.php";
URL url = null;
StringBuffer sb = new StringBuffer();
try {
url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream iStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(iStream));
String line = "";
while( (line = reader.readLine()) != null){
sb.append(line);
}
reader.close();
iStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
new ParserTask().execute(result);
}
}
// Background thread to parse the JSON data retrieved from MySQL server
private class ParserTask extends AsyncTask<String, Void, List<HashMap<String, String>>>{
@Override
protected List<HashMap<String,String>> doInBackground(String... params) {
MarkerJSONParser markerParser = new MarkerJSONParser();
JSONObject json = null;
try {
json = new JSONObject(params[0]);
} catch (JSONException e) {
e.printStackTrace();
}
List<HashMap<String, String>> markersList = markerParser.parse(json);
return markersList;
}
@Override
protected void onPostExecute(List<HashMap<String, String>> result) {
for(int i=0; i<result.size();i++){
HashMap<String, String> marker = result.get(i);
LatLng latlng = new LatLng(Double.parseDouble(marker.get("lat")), Double.parseDouble(marker.get("lng")));
addMarker(latlng);
}
}
}
@Override
public void onMarkerDragStart(Marker marker) {
}
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
}
@Override
public void onMapLongClick(LatLng latLng) {
}
}
公共类TAB3扩展片段实现
OnMapReadyCallback,GoogleMap.onmarkerdragstener,GoogleMap.OnMapLongClickListener{
//我们的地图
私有谷歌地图mGoogleMap;
私有字符串组标识;
视图根视图;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
if(rootView!=null){
ViewGroup parent=(ViewGroup)rootView.getParent();
如果(父项!=null)
parent.removeView(rootView);
}
试一试{
rootView=充气机。充气(R.layout.TAB3提醒,容器,错误);
//SharedReferences SharedReferences1=getActivity().GetSharedReferences(Config.SHARED\u PREF\u组,Context.MODE\u PRIVATE);
//group_id=sharedPreferences1.getString(Config.group_SHARED_PREF,“不可用”);
SupportMapFragment mapFragment=(SupportMapFragment)this.getChildFragmentManager()
.findFragmentById(R.id.map1);
getMapAsync(这个);
//开始位置检索任务
新建RetrieveTask().execute();
}锁扣(充气异常e){
}
返回rootView;
}
//在谷歌地图上添加标记
专用空隙添加标记器(LatLng LatLng){
MarkerOptions MarkerOptions=新MarkerOptions();
标记选项位置(板条);
标记选项。标题(纬度+“,”+纬度经度);
mGoogleMap.addMarker(markerOptions);
}
//调用后台线程在Remove MySQL服务器中存储被触摸的位置
专用void发送服务器(LatLng LatLng){
新建SaveTask().execute(latlng);
}
@凌驾
4月1日公开作废(谷歌地图谷歌地图){
//初始化我们的地图
mGoogleMap=谷歌地图;
//创建随机坐标
悉尼LatLng=新LatLng(1.858642103.085846);
//为Google地图设置OnClickEvent侦听器
/*
mGoogleMap.setOnMapClickListener(新的GoogleMap.OnMapClickListener(){
@凌驾
公共无效的点击(LatLng LatLng){
添加标记(latlng);
发送服务器(latlng);
}
});
*/
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(悉尼));
//设置摄影机的动画
mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(10));
mGoogleMap.setOnMarkerDragListener(这个);
//向映射添加长单击侦听器
mGoogleMap.setOnMapLongClickListener(这个);
if((ActivityCompat.checkSelfPermission(getActivity(),android.Manifest.permission.ACCESS\u FINE\u LOCATION)==PackageManager.permission\u已授予| | ActivityCompat.checkSelfPermission(getActivity(),android.Manifest.permission.ACCESS\u Rough\u LOCATION)==PackageManager.permission\u已授予)){
mGoogleMap.setMyLocationEnabled(true);
}
}
//在remove MySQL server中保存位置的后台线程
私有类SaveTask扩展了异步任务{
@凌驾
受保护的空位背景(LatLng…参数){
字符串lat=Double.toString(参数[0]。纬度);
字符串lng=Double.toString(参数[0]。经度);
字符串strUrl=”http://192.168.1.7/friend3/location_marker_mysql/save.php";
URL=null;
试一试{
url=新url(strUrl);
HttpURLConnection连接=(HttpURLConnection)url
.openConnection();
connection.setRequestMethod(“POST”);
connection.setDoOutput(真);
OutputStreamWriter OutputStreamWriter=新的OutputStreamWriter(
connection.getOutputStream());
outputStreamWriter.write(“lat=“+lat+”&lng=“+lng”);
outputStreamWriter.flush();
outputStreamWriter.close();
InputStream iStream=connection.getInputStream();
BufferedReader读取器=新的BufferedReader(新的
InputStreamReader(iStream));
StringBuffer sb=新的StringBuffer();
字符串行=”;
而((line=reader.readLine())!=null){
某人附加(行);
}
reader.close();
iStream.close();
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
}
//从远程mysql服务器检索位置的后台任务
私有类RetrieveTask扩展了异步任务{
@凌驾
受保护字符串doInBackground(无效…参数){
//字符串strUrl=”http://192.168.1.7/friend3/location_marker_mysql/retrieve.php?group_id=“+集团id;
字符串strUrl=”http://192.168.1.7/friend3/location_marker_mysql/retrieve.php";
URL=null;
StringBuffer sb=新的StringBuffer();
试一试{
url=新url(strUrl);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.connect();
InputStream iStream=connection.getInputStream();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(iStream));
字符串行=”;
而((line=reader.readLine())!=null){
某人附加(行);
}
reader.close();
iStream.close();
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
使某人返回字符串();
}
@凌驾
受保护vo
public class MarkerJSONParser {
/** Receives a JSONObject and returns a list */
public List<HashMap<String,String>> parse(JSONObject jObject){
JSONArray jMarkers = null;
try {
/** Retrieves all the elements in the 'markers' array */
jMarkers = jObject.getJSONArray("markers");
} catch (JSONException e) {
e.printStackTrace();
}
/** Invoking getMarkers with the array of json object
* where each json object represent a marker
*/
return getMarkers(jMarkers);
}
private List<HashMap<String, String>> getMarkers(JSONArray jMarkers){
int markersCount = jMarkers.length();
List<HashMap<String, String>> markersList = new ArrayList<HashMap<String,String>>();
HashMap<String, String> marker = null;
/** Taking each marker, parses and adds to list object */
for(int i=0; i<markersCount;i++){
try {
/** Call getMarker with marker JSON object to parse the marker */
marker = getMarker((JSONObject)jMarkers.get(i));
markersList.add(marker);
}catch (JSONException e){
e.printStackTrace();
}
}
return markersList;
}
/** Parsing the Marker JSON object */
private HashMap<String, String> getMarker(JSONObject jMarker){
HashMap<String, String> marker = new HashMap<String, String>();
String lat = "-NA-";
String lng ="-NA-";
try {
// Extracting longitude, if available
if(!jMarker.isNull("lng")){
lng = jMarker.getString("lng");
}
// Extracting latitude, if available
if(!jMarker.isNull("lat")){
lat = jMarker.getString("lat");
}
// Extracting longitude, if available
if(!jMarker.isNull("lng")){
lng = jMarker.getString("lng");
}
marker.put("lat", lat);
marker.put("lng", lng);
} catch (JSONException e) {
e.printStackTrace();
}
return marker;
}