1、Android主要代码
package com.pdsu.libsys;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONObject;
import com.android.volley.Request.Method;
import com.android.volley.AuthFailureError;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.pdsu.book.user.Book;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class SelectActivity extends Activity implements OnItemSelectedListener,
OnQueryTextListener {
protected static final String TAG = "SelectActivity";
private Spinner mSpinner;
private ArrayAdapter<String> adapter;
private List<String> list = new ArrayList<String>();
private SearchView mSearchView;
private TextView bookNameTextView, bookISBNTextView, bookAuthorTextView,
bookTypeTextView, bookLoactionTextView, bookSaveNumTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select);
ActionBar bar = getActionBar();
bar.setHomeButtonEnabled(true);
bar.setDisplayHomeAsUpEnabled(true);
bar.setBackgroundDrawable(getWallpaper());
initView();
mSearchView = (SearchView) findViewById(R.id.search_view);
mSearchView.setIconifiedByDefault(false);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setIconifiedByDefault(false);
int search_mag_icon_id = mSearchView.getContext().getResources()
.getIdentifier("android:id/search_mag_icon", null, null);
ImageView search_mag_icon = (ImageView) mSearchView
.findViewById(search_mag_icon_id);// 获取搜索图标
search_mag_icon.setImageResource(R.drawable.search_button_default);// 图标都是用src的
// 修改为展开时的搜索图标
// Field mSearchButton = argClass.getDeclaredField("mSearchButton");
mSpinner = (Spinner) findViewById(R.id.sp_select);
list.add("文学名著");
list.add("杂志期刊");
list.add("学术文献");
list.add("当代文学");
list.add("馆藏资料");
// 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
mSpinner.setAdapter(adapter);
mSpinner.setOnItemSelectedListener(this);
mSearchView.setOnQueryTextListener(this);
}
private void initView() {
// TODO Auto-generated method stub
bookNameTextView = (TextView) findViewById(R.id.book_name);
bookISBNTextView = (TextView) findViewById(R.id.book_ISBN);
bookAuthorTextView = (TextView) findViewById(R.id.book_author);
bookTypeTextView = (TextView) findViewById(R.id.book_type);
bookLoactionTextView = (TextView) findViewById(R.id.book_location);
bookSaveNumTextView = (TextView) findViewById(R.id.book_saveNum);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
switch (arg2) {
case 0:
// Toast.makeText(SelectActivity.this,
// "您选择了: " + arg2 + list.get(arg2), 0).show();
break;
case 1:
// Toast.makeText(SelectActivity.this,
// "您选择了: " + arg2 + list.get(arg2), 0).show();
break;
case 2:
// Toast.makeText(SelectActivity.this,
// "您选择了: " + arg2 + list.get(arg2), 0).show();
break;
case 3:
// Toast.makeText(SelectActivity.this,
// "您选择了: " + arg2 + list.get(arg2), 0).show();
break;
case 4:
// Toast.makeText(SelectActivity.this,
// "您选择了: " + arg2 + list.get(arg2), 0).show();
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onQueryTextChange(String arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onQueryTextSubmit(final String arg0) {
// 进行搜索操作
final String dataString = arg0;
// Toast.makeText(SelectActivity.this, "您选择了: " + arg0, 0).show();
RequestQueue queue = Volley.newRequestQueue(SelectActivity.this);
String url = "http://192.168.0.191:8080/libsys/select";
StringRequest request = new StringRequest(Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Gson gson = new Gson();
List<Book> books = new ArrayList<Book>();
Type type = new TypeToken<ArrayList<Book>>() {
}.getType();
books = gson.fromJson(response, type);
for (Book book : books) {
bookNameTextView.setText("书名: "
+ book.getBookName());
bookISBNTextView.setText("ISBN: "
+ book.getBookISBN());
bookAuthorTextView.setText("作者: "
+ book.getBookAuthor());
bookTypeTextView.setText("分类: "
+ book.getBookType());
bookLoactionTextView.setText("馆藏地址: "
+ book.getBookLocation());
bookSaveNumTextView.setText("馆藏数量: "
+ book.getBookSaveNum());
}
}
}
, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
Toast.makeText(SelectActivity.this, "获取数据失败,请检查网络", 0)
.show();
Log.e(TAG, error.toString());
}
}) {
@Override
public Map<String, String> getParams() throws AuthFailureError {
// TODO Auto-generated method stub
Map<String, String> map = new HashMap<String, String>();
map.put("bookinfo", arg0);
return map;
}
};
queue.add(request);
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if (item.isCheckable()) {
item.setCheckable(true);
}
switch (item.getItemId()) {
case android.R.id.home:
this.finish();
break;
default:
break;
}
return true;
}
}
2、布局文件.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bj2x"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<Spinner
android:id="@+id/sp_select"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="true" >
</Spinner>
<SearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
android:iconifiedByDefault="true"
android:imeOptions="actionSearch"
android:inputType="textCapWords"
android:queryHint="文学" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/book_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="书名:" />
</ScrollView>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/book_author"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="作者:" />
</ScrollView>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/book_ISBN"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="ISBN:" />
</ScrollView>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/book_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="分类:" />
</ScrollView>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/book_location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="馆藏位置:" />
</ScrollView>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/book_saveNum"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="馆藏数量:" />
</ScrollView>
</LinearLayout>
3、相关的Jar包
android-support-v4.jarcore.jar
gson-2.2.1-javadoc.jar
gson-2.2.1.jar
volley.jar