안녕하세요. 순수하게 열심히 코드분석하며 이리저리 요리조리 열심히 보고 공부하는 학생입니다!
다름이아니라, APM_SETUP으로 제 컴퓨터를 서버로 두고
안드로이드와 서버와 연결하여 상품,가격을 insert하고 찾기버튼을 누르면 서버에 insert되어있는 모든 데이터를
읽어오도록까지는 했습니다.
그런데 욕심이 생겨서요..
EditText를 하나 생성해서 EditText에 입력된 값을 읽어와서 조회하려고 합니다.
조회대상은 가격이 아닌 상품명이구요.
그런데 여기저기 짜집기로 만든 소스라 어찌 손을 대야할지 모르겠네요..
책2권을 가지고 아무리 보고 또 봐도....ㅎㅎ....
고수님들께 손을 벌려보려 합니다 ㅠ.ㅠ
소스를 아래 첨부할테니 추가한 EditText에 상품명을 입력했을때 db로 접근하여
입력된 상품명을 조회해오는 코드좀.....염치없지만 부탁드립니다.
알려주시면 그걸가지고 또 공부하겠습니다!
java소스
public class Android_BookActivity extends Activity {
private final String SERVER_ADDRESS = "http://127.0.0.1/Books";
EditText edtname;
EditText edtprice;
Button btninsert;
Button btnsearch;
ListView list;
ArrayList<String> data;
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edtname = (EditText )findViewById(R.id.editText1);
edtprice = (EditText )findViewById(R.id.editText2);
btninsert = (Button )findViewById(R.id.button1);
btnsearch = (Button )findViewById(R.id.button2);
list = (ListView )findViewById(R.id.listView1);
data = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, data);
list.setAdapter(adapter);
btninsert.setOnClickListener(new View.OnClickListener() { //입력 버튼을 눌렀을 때
public void onClick(View v) {
// TODO Auto-generated method stub
if( edtname.getText().toString().equals("") ||
edtprice.getText().toString().equals("") ) { //이름이나 가격중에 하나라도 입력이 안돼있을때
Toast.makeText(Android_BookActivity.this,
"이름이나 가격을 입력하세요", Toast.LENGTH_SHORT).show();
return;
}
runOnUiThread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
String name = edtname.getText().toString();
String price = edtprice.getText().toString();
try {
URL url = new URL(SERVER_ADDRESS + "/insert.php?"
+ "name=" + URLEncoder.encode(name, "UTF-8")
+ "&price=" + URLEncoder.encode(price, "UTF-8")); //변수값을 UTF-8로 인코딩하기 위해 URLEncoder를 이용하여 인코딩함
url.openStream(); //서버의 DB에 입력하기 위해 웹서버의 insert.php파일에 입력된 이름과 가격을 넘김
String result = getXmlData("insertresult.xml", "result"); //입력 성공여부
if(result.equals("1")) { //result 태그값이 1일때 성공
Toast.makeText(Android_BookActivity.this,
"DB insert 성공", Toast.LENGTH_SHORT).show();
edtname.setText("");
edtprice.setText("");
}
else //result 태그값이 1이 아닐때 실패
Toast.makeText(Android_BookActivity.this,
"DB insert 실패", Toast.LENGTH_SHORT).show();
} catch(Exception e) {
Log.e("Error", e.getMessage());
}
}
});
}
});
btnsearch.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
final Handler handler = new Handler();
runOnUiThread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
final ProgressDialog dialog = ProgressDialog.show(
Android_BookActivity.this,
"불러오는중.....", "잠시만 기다려주세요.");
handler.post(new Runnable() {
public void run() {
// TODO Auto-generated method stub
try {
data.clear(); //반복적으로 누를경우 똑같은 값이 나오는 것을 방지하기 위해 data를 클리어함
URL url = new URL(SERVER_ADDRESS + "/search.php");
url.openStream(); //서버의 serarch.php파일을 실행함
ArrayList<String> namelist = getXmlDataList("searchresult.xml", "name");//name 태그값을 읽어 namelist 리스트에 저장
ArrayList<String> pricelist = getXmlDataList("searchresult.xml", "price"); //price 태그값을 읽어 prica 리스트에 저장
if(namelist.isEmpty())
data.add("아무것도 검색되지 않았습니다.");
else {
for(int i = 0; i < namelist.size(); i++) {
String str = namelist.get(i) + " - " + pricelist.get(i);
data.add(str);
}
}
} catch(Exception e) {
Log.e("Error", e.getMessage());
} finally{
dialog.dismiss();
adapter.notifyDataSetChanged();
}
}
});
}
});
}
});
}
부탁드립니다ㅠㅠ