Skip to content
This repository was archived by the owner on Nov 5, 2020. It is now read-only.

Commit ce3776a

Browse files
committed
feat: 按照日期查询
1 parent cfec870 commit ce3776a

File tree

10 files changed

+214
-12
lines changed

10 files changed

+214
-12
lines changed

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@ dependencies {
3434
implementation 'com.android.support:recyclerview-v7:26.1.0'
3535
implementation 'com.android.support:cardview-v7:22.2.0'
3636
implementation 'com.google.code.gson:gson:2.8.5'
37+
implementation 'br.com.forusers.heinsinputdialogs:input-dialogs-library:0.1.4'
3738
}

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
34
package="io.github.zhaoqi99.snnu_android">
45

56
<!-- To access Google+ APIs: -->
@@ -11,6 +12,7 @@
1112
<uses-permission android:name="android.permission.READ_CONTACTS" />
1213

1314
<application
15+
tools:replace="android:theme"
1416
android:allowBackup="true"
1517
android:icon="@mipmap/ic_launcher"
1618
android:label="@string/app_name"

app/src/main/java/io/github/zhaoqi99/snnu_android/MainActivity.java

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,20 @@
1515

1616
import com.stephentuso.welcome.WelcomeHelper;
1717

18+
import java.text.SimpleDateFormat;
19+
import java.util.Date;
20+
21+
import br.com.forusers.heinsinputdialogs.HeinsDatePickerDialog;
22+
import br.com.forusers.heinsinputdialogs.interfaces.OnSelectDateListener;
23+
1824
public class MainActivity extends AppCompatActivity {
1925

2026
WelcomeHelper welcomeScreen;
2127
NavigationView navigationView;
2228
DrawerLayout drawerLayout;
2329
Toolbar mToolBar;
2430

25-
31+
HeinsDatePickerDialog dialog;
2632

2733
@Override
2834
protected void onCreate(Bundle savedInstanceState) {
@@ -73,6 +79,18 @@ public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
7379
});
7480
setSupportActionBar(mToolBar);
7581
switchToNotice();
82+
dialog = new HeinsDatePickerDialog();
83+
dialog.setListener(new OnSelectDateListener() {
84+
@Override
85+
public void onSelectDate(Date date) throws Exception {
86+
Toast.makeText(getApplicationContext(), "clicked refresh", Toast.LENGTH_SHORT).show();
87+
SearchNoticeFragment nf= new SearchNoticeFragment();
88+
nf.setType(mToolBar.getTitle().toString());
89+
SimpleDateFormat sft=new SimpleDateFormat("yyyy-MM-dd");
90+
nf.setDate(sft.format(date));
91+
getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,nf ).commit();
92+
}
93+
});
7694
}
7795

7896
@Override
@@ -107,7 +125,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
107125
drawerLayout.openDrawer(GravityCompat.START);
108126
break;
109127
case R.id.search:
110-
Toast.makeText(this, " clicked search", Toast.LENGTH_SHORT).show();
128+
dialog.show(getSupportFragmentManager(), getClass().getSimpleName());
111129
break;
112130
case R.id.refresh:
113131
Toast.makeText(this, "clicked refresh", Toast.LENGTH_SHORT).show();
@@ -119,31 +137,31 @@ public boolean onOptionsItemSelected(MenuItem item) {
119137

120138
private void switchToAbout() {
121139
getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new AboutFragment()).commit();
122-
// mToolbar.setTitle(R.string.navigation_book);
140+
mToolBar.setTitle(R.string.navigation_about);
123141
}
124142
private void switchToNews() {
125143
NewsFragment nf= new NewsFragment();
126144
nf.setType("新闻");
127145
getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, nf).commit();
128-
// mToolbar.setTitle(R.string.navigation_book);
146+
mToolBar.setTitle(R.string.navigation_news);
129147
}
130148
private void switchToNotice() {
131149
NewsFragment nf= new NewsFragment();
132150
nf.setType("通知");
133151
getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,nf ).commit();
134-
// mToolbar.setTitle(R.string.navigation_book);
152+
mToolBar.setTitle(R.string.navigation_notice);
135153
}
136154
private void switchToCard() {
137155
getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new CardFragment() ).commit();
138-
// mToolbar.setTitle(R.string.navigation_book);
156+
mToolBar.setTitle(R.string.navigation_card);
139157
}
140158
private void switchToJwc() {
141159
getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new JwcFragment() ).commitAllowingStateLoss();
142-
// mToolbar.setTitle(R.string.navigation_book);
160+
mToolBar.setTitle(R.string.navigation_jwc);
143161
}
144162
private void switchToBookInfo() {
145163
getSupportFragmentManager().beginTransaction().replace(R.id.frame_content,new BookInfoFragment() ).commit();
146-
// mToolbar.setTitle(R.string.navigation_book);
164+
mToolBar.setTitle(R.string.navigation_borrow);
147165
}
148166
// @Override
149167
// public void onBackPressed()

app/src/main/java/io/github/zhaoqi99/snnu_android/NewsTab.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ private void getRemoteInfo(String dep) throws Exception {
106106
result = object.getProperty(0).toString();
107107
}
108108
}
109-
110-
private ArrayList<NoticeMessage> getNotice(String str) {
109+
public ArrayList<NoticeMessage> getNotice(String str) {
111110
String str_Title = "";
112111
String str_Date = "";
113112
String str_Department = "";
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
package io.github.zhaoqi99.snnu_android;
2+
3+
4+
import android.os.AsyncTask;
5+
import android.os.Bundle;
6+
import android.support.v4.app.Fragment;
7+
import android.support.v7.widget.LinearLayoutManager;
8+
import android.support.v7.widget.RecyclerView;
9+
import android.view.LayoutInflater;
10+
import android.view.View;
11+
import android.view.ViewGroup;
12+
13+
import org.ksoap2.serialization.SoapObject;
14+
import org.ksoap2.serialization.SoapSerializationEnvelope;
15+
import org.ksoap2.transport.HttpTransportSE;
16+
17+
import java.util.ArrayList;
18+
19+
import io.github.zhaoqi99.snnu_android.Model.NoticeMessage;
20+
21+
22+
/**
23+
* A simple {@link Fragment} subclass.
24+
*/
25+
public class SearchNoticeFragment extends Fragment {
26+
27+
private mNoticeRecyclerViewAdapter mNoticeRecyclerViewAdapter;
28+
ArrayList<NoticeMessage> newsList = new ArrayList<>();
29+
String result;
30+
31+
public String getDate() {
32+
return date;
33+
}
34+
35+
public void setDate(String date) {
36+
this.date = date;
37+
}
38+
39+
String date;
40+
private RecyclerView recyclerView;
41+
View view;
42+
String type;
43+
44+
public String getType() {
45+
return type;
46+
}
47+
48+
public void setType(String type) {
49+
this.type = type;
50+
}
51+
52+
public SearchNoticeFragment() {
53+
// Required empty public constructor
54+
}
55+
56+
57+
@Override
58+
public View onCreateView(LayoutInflater inflater, ViewGroup container,
59+
Bundle savedInstanceState) {
60+
// Inflate the layout for this fragment
61+
QueryTask queryTask=new QueryTask();
62+
queryTask.execute(date);
63+
64+
view = inflater.inflate(R.layout.fragment_tab, container, false);
65+
recyclerView = view.findViewById(R.id.recycler_view);
66+
return view;
67+
}
68+
69+
private class QueryTask extends AsyncTask<String, Integer, String> {
70+
71+
@Override
72+
protected String doInBackground(String... strings) {
73+
try {
74+
getRemoteInfo(strings[0]);
75+
} catch (Exception e) {
76+
e.printStackTrace();
77+
}
78+
return result;
79+
}
80+
81+
@Override
82+
protected void onPostExecute(String result) {
83+
newsList=getNotice(result);
84+
mNoticeRecyclerViewAdapter = new mNoticeRecyclerViewAdapter(newsList);
85+
LinearLayoutManager layoutManager = new LinearLayoutManager(view.getContext());
86+
recyclerView.setLayoutManager(layoutManager);
87+
recyclerView.setAdapter(mNoticeRecyclerViewAdapter);
88+
}
89+
90+
private void getRemoteInfo(String date) throws Exception {
91+
String Target_URL = "";
92+
String namespace = "";
93+
String methodName = " ";
94+
if(type=="通知")
95+
{
96+
Target_URL = "http://118.24.104.99:8080/Notice.asmx";
97+
namespace = "http://webxml.zhaoqi.vip/";
98+
methodName = "getNoticeByDate";
99+
}
100+
else
101+
{
102+
Target_URL = "http://118.24.104.99:8080/News.asmx";
103+
namespace = "http://webxml.zhaoqi.vip/";
104+
methodName = "getNewsByDate";
105+
}
106+
SoapObject request = new SoapObject(namespace, methodName);
107+
request.addProperty("date", date);
108+
SoapSerializationEnvelope envelope = new
109+
SoapSerializationEnvelope(SoapSerializationEnvelope.VER12);
110+
envelope.bodyOut = request;
111+
envelope.dotNet = true;
112+
HttpTransportSE httpTransportSE = new HttpTransportSE(Target_URL);
113+
httpTransportSE.call(null, envelope);
114+
SoapObject object = (SoapObject) envelope.bodyIn;
115+
result = object.getProperty(0).toString();
116+
}
117+
}
118+
public ArrayList<NoticeMessage> getNotice(String str) {
119+
String str_Title = "";
120+
String str_Date = "";
121+
String str_Department = "";
122+
String str_Type = "";
123+
String str_Link = "";
124+
ArrayList<NoticeMessage> messageList = new ArrayList<>();
125+
126+
for (int i = 0; i < str.length(); i++) {
127+
if (i + 5 < str.length() && str.substring(i, i + 5).equals("Title")) {
128+
129+
i += 6;
130+
int tag1 = str.indexOf(';', i);
131+
if (str.charAt(tag1 + 1) != ' ') {
132+
tag1++;
133+
tag1 = str.indexOf(';', tag1);
134+
}
135+
str_Title = str.substring(i, tag1);//"Title";
136+
i = tag1 + 1;
137+
i += 6;
138+
int tag2 = str.indexOf(';', i);
139+
140+
str_Link = str.substring(i, tag2);//"Link";
141+
i = tag2 + 1;
142+
i += 6;
143+
int tag3 = str.indexOf(';', i);
144+
int tag3x = str.indexOf("T", i);
145+
str_Date = str.substring(i, tag3x);//"Data";
146+
i = tag3 + 1;
147+
i += 6;
148+
int tag4 = str.indexOf(';', i);
149+
150+
str_Type = str.substring(i, tag4);//"Type";
151+
i = tag4 + 1;
152+
i += 12;
153+
int tag5 = str.indexOf(';', i);
154+
155+
str_Department = str.substring(i, tag5);//"Department";
156+
i = tag5 + 1;
157+
if (str_Title.length() > 17)
158+
str_Title = str_Title.substring(0, 17) + "...";
159+
NoticeMessage message = new NoticeMessage(" " + str_Title, "时间:" + str_Date, str_Link, str_Type, str_Department);
160+
messageList.add(message);
161+
}
162+
}
163+
return messageList;
164+
}
165+
}

app/src/main/java/io/github/zhaoqi99/snnu_android/myGradeRecyclerViewAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ public int getItemCount() {
4545
@Override
4646
public void onBindViewHolder(myGradeRecyclerViewAdapter.ViewHolder holder, int position) {
4747
GradeModel.Data data = DataList.get(position);
48-
String s=data.get课程名();
4948
holder.name.setText(data.get课程名());
5049
holder.shuxing.setText(data.get课程属性());
5150
holder.xuefen.setText(data.get学分());
5251
holder.score.setText(data.get成绩());
52+
5353
}
5454

5555
@Override
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
tools:context=".SearchNoticeFragment">
7+
8+
<!-- TODO: Update blank fragment layout -->
9+
10+
</FrameLayout>

app/src/main/res/menu/toolbar_menu.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<item
55
android:id="@+id/search"
66
android:title="Search"
7-
app:actionViewClass="android.support.v7.widget.SearchView"
7+
android:icon="@drawable/action_refresh"
88
app:showAsAction="always"/>
99
<item
1010
android:id="@+id/refresh"

app/src/main/res/values/strings.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,10 @@
1717
<string name="permission_rationale">"Contacts permissions are needed for providing email
1818
completions."
1919
</string>
20+
<string name="navigation_news">新闻</string>
21+
<string name="navigation_notice">通知</string>
22+
<string name="navigation_jwc">教务处</string>
23+
<string name="navigation_borrow">预约到馆</string>
24+
<string name="navigation_card">校园卡</string>
25+
<string name="navigation_about">关于</string>
2026
</resources>

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ allprojects {
1919
repositories {
2020
google()
2121
jcenter()
22+
maven { url "http://dl.bintray.com/hellmannmaicon/android" }
2223
}
2324
}
2425

0 commit comments

Comments
 (0)