1. 첫 화면에서 DB 테이블을 생성하고 ListView를 띄우고 List 를 클릭하면 DB에 저장된 address 값을 다른 액티비티로 전달하는데요.
List 클릭하면 저장한 ip 주소(address)가 Client 액티비티로 값이 넘어가고 그 주소값을 Client.java 내에 액티비티 안이 아닌 외부의 클래스 IPclient로 전달해서 run()을 실행시키려 하는데 화면 전환이 안되거나 화면 전환까지는 되지만 값이 넘어가지 않는지 client.java 화면에서 run()실행을 위해 버튼을 클릭하면 예상치 못하게 종료되었다고 나오네요..
혹시 intent.putExtra("address", Long.toString(address)); 에서 안넘어가는 건지 뭐가 문제인지 모르겠네요..;
clent.java 액티비티에서 어떻게 해야 ipclient 클래스로 address 값을 넘길 수 있나요? 가르쳐 주시면 감사하겠습니다.
잘 모르거나 이상하다고 생각되는 부분은 굵게 표시했습니다..
2. 아래 쪽에 추가 질문도 올리겠습니다..;;
로그캣도 올리겠습니다..
/* DB.java */
public class DB extends ListActivity {
////DB생성
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getDbdata();
}
////생략
public void onListItemClick(ListView parent, View v, int position, long address){
super.onListItemClick(parent, v, position, address);
Intent intent = new Intent(DB.this, Client.class);
intent.putExtra("address", Long.toString(address));
startActivity(intent);
}
////생략
/*Client.java*/
public class Client extends Activity{
/** Called when the activity is first created. */
String ip=getIntent().getExtras().getString("address"); //(?) 이렇게 하면 되는건지 잘 모르겠습니다..;;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hdpi);
((ImageButton)findViewById(R.id.Imgbtn1)).setOnClickListener(new Button01Click());
((ImageButton)findViewById(R.id.Imgbtn2)).setOnClickListener(new Button02Click());
((ImageButton)findViewById(R.id.Imgbtn3)).setOnClickListener(new Button03Click());
((ImageButton)findViewById(R.id.Imgbtn4)).setOnClickListener(new Button04Click());
((ImageButton)findViewById(R.id.Imgbtn5)).setOnClickListener(new Button05Click());
((ImageButton)findViewById(R.id.Imgbtn6)).setOnClickListener(new Button06Click());
((ImageButton)findViewById(R.id.Imgbtn7)).setOnClickListener(new Button07Click());
((ImageButton)findViewById(R.id.Imgbtn0)).setOnClickListener(new Button08Click());
}
}
class Button01Click implements OnClickListener{
public void onClick(View v){
////생략
}
}
////////////////////////////생략
class IPclient implements Runnable{
//private static final String serverIP = "xxx.xxx.xx.xx";
private static final int serverPort = xxxx;
public static String select;
private static final String serverIP = ip; (?)
public void run(){
////생략 - 소켓 통신 부분...
}
}
=========================================================================================================
2. /*DB.java*/ 에서 테이블 생성 후 입력한 ip 주소 및 정보를 저장하고 삭제나 수정하기 위해 메뉴 2개를 생성했는데 AddActivity에 값의 저장은 되는데 EditActivity를 어떻게 불러와야 할지 모르겠습니다. id 를 받아야 하는데 itemCallback 하고onOptionsItemSelected 부분을 어떻게 작성해야 되는지 모르겠습니다...; 물음표 해놓은 부분이 잘 모르는 부분입니다..;
어떻게 작성해야 하는지 알려주시면 감사하겠습니다.
public class DB extends ListActivity {
private static final String Q_CREATE_TABLE = "CREATE TABLE ip_info ("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT," +" address TEXT," +" user TEXT,"
+" comment TEXT" +");";
//////////////////////생략
@Override
public boolean onCreateOptionsMenu(Menu menu){
menu.add(Menu.NONE,Menu.FIRST+1,Menu.NONE,"Add IP-Address");
menu.add(Menu.NONE,Menu.FIRST+2,Menu.NONE,"Edit IP-Address");
return(super.onCreateOptionsMenu(menu));
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
super.onOptionsItemSelected(item);
return (itemCallback(item) || itemCallback(item)); //(?)
}
public boolean itemCallback(MenuItem item){
switch(item.getItemId()){
case Menu.FIRST+1:
Intent intent1 = new Intent(DataActivity.this,AddActivity.class);
startActivity(intent1);
case Menu.FIRST+2:
Intent intent2 = new Intent(DataActivity.this,EditActivity.class);
intent2.putExtra("id",Long.toString(id)); (?)
startActivity(intent2);
return true;
}
return false;
}



