안드로이드 앱 공부하고있는 초보입니다...
two라는 클래스에 이미지가 2개 있습니다. 이미지 바로 밑에는 edittext가 각각 하나씩 있고
이미지 1,2를 각각 누르면 input이라는 클래스로 넘어갑니다. input클래스에서는 이름을 입력할수 있게 했습니다.
이미지 1을 눌르고 input클래스에서 edittext로 문자를입력하고 ok버튼을 누르면 two클래스의 이미지1밑에 있는
edittext에 출력되고 이미지2를 누르고 input클래스에서 edittext로 문자를 입력하고 ok버튼을 누르면 two클래스의 이미지2밑에 있는
edittext로 출력되게 하려고 합니다.
지금상태는 이미지1로 문자입력하면 이미지1밑에 있는 edittext로 출력은 되는데 그다음 이미지2에 들어가서 문자입력하면
출력이 이미지2밑에있는 edittext로 출력되야하는데 계속 이미지1밑에있는 edittext로출력됩니다.
도와주세요 ㅠ
two 클래스
package aa.com;
import android.app.*;
import android.content.*;
import android.os.*;
import android.provider.ContactsContract.*;
import android.view.*;
import android.widget.*;
public class two extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.two); //two 레이아웃 호출
EditText editText1 = (EditText)findViewById(R.id.text1);
ImageView one1 = (ImageView) findViewById(R.id.ant); // ant을 ImageView형식으로 호출
one1.setOnClickListener(new ImageView.OnClickListener() { // 버튼이벤트 받아들일준비
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(two.this, input.class); // intent클래스에 input클래스 추가
startActivityForResult(intent,0);
//startActivity(intent);// intent시작
}
});
EditText text1 = (EditText)findViewById(R.id.text1);
Intent intent1= getIntent();
String st1 = intent1.getStringExtra("text1");
text1.setText(st1);
EditText editText2 = (EditText)findViewById(R.id.text2);
ImageView one2 = (ImageView) findViewById(R.id.butterfly); // butteryfly을 ImageView형식으로 호출
one2.setOnClickListener(new ImageView.OnClickListener() { // 버튼이벤트 받아들일 준비
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(two.this, input.class); // intent클래스에 input클래스 추가
startActivityForResult(intent,0);
//startActivity(intent);// intent시작
}
});
EditText text2 = (EditText)findViewById(R.id.text2);
Intent intent2= getIntent();
String st2 = intent2.getStringExtra("text2");
text2.setText(st2);
}
}
input클래스
package aa.com;
import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.widget.*;
public class input extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.input); //input 레이아웃 호출
// TODO Auto-generated method stub
ImageView ok = (ImageView) findViewById(R.id.ok); // ok을 ImageView형식으로 호출
ok.setOnClickListener(new ImageView.OnClickListener() { // 버튼이벤트 받아들일준비
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText edit1=(EditText)findViewById(R.id.text1);
Intent intent1 = new Intent(input.this, two.class); // intent클래스에 a클래스 추가
String input1=edit1.getText().toString();
intent1.putExtra("text1", input1);
startActivity(intent1);// intent시작
}
});
}
public void onClick(View v) {
// TODO Auto-generated method stub
EditText edit2=(EditText)findViewById(R.id.text2);
Intent intent2 = new Intent(input.this, two.class); // intent클래스에 a클래스 추가
String input2=edit2.getText().toString();
intent2.putExtra("text2", input2);
startActivity(intent2);// intent시작
}
}




문제점 : input 클래스에서 onclick 이벤트스에 이게 1인지, 2인지를 구분하지 않고 무조건 실행되는 이벤트가 있습니다.
이를 if 나 switch 조건문으로 변경하여 어떤 그림을 클릭하였는지 구분할 필요가 있습니다.
다음은 수정한 코딩문입니다.
two.java
package aa.com;
import android.app.*;
import android.content.*;
import android.os.*;
import android.provider.ContactsContract.*;
import android.view.*;
import android.widget.*;
public class Two extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.two); //two 레이아웃 호출
//EditText editText1 = (EditText)findViewById(R.id.text1);
EditText text1 = (EditText)findViewById(R.id.text1);
EditText text2 = (EditText)findViewById(R.id.text2);
ImageView one1 = (ImageView) findViewById(R.id.ant); // ant을 ImageView형식으로 호출
one1.setOnClickListener(new ImageView.OnClickListener() { // 버튼이벤트 받아들일준비
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
Intent intent = new Intent(Two.this, input.class); // intent클래스에 input클래스 추가
intent.putExtra(input.first, "first");
startActivityForResult(intent, 0);
//startActivity(intent);// intent시작
}
});
// EditText editText2 = (EditText)findViewById(R.id.text2);
ImageView one2 = (ImageView) findViewById(R.id.butterfly); // butteryfly을 ImageView형식으로 호출
one2.setOnClickListener(new ImageView.OnClickListener() { // 버튼이벤트 받아들일 준비
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Two.this, input.class); // intent클래스에 input클래스 추가
intent.putExtra(input.first, "second");
startActivityForResult(intent,0);
//startActivity(intent);// intent시작
}
});
Intent intent1= getIntent();
String st1 = intent1.getStringExtra("text1");
text1.setText(st1);
Intent intent2= getIntent();
String st2 = intent2.getStringExtra("text2");
text2.setText(st2);
}
}
----
input.java
package aa.com;
import android.app.*;
import android.content.*;
import android.os.*;
import android.util.Log;
import android.view.*;
import android.widget.*;
public class input extends Activity {
public static final String first = "";
String a="";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.input); //input 레이아웃 호출
// TODO Auto-generated method stub
ImageView ok = (ImageView) findViewById(R.id.ok); // ok을 ImageView형식으로 호출
a = getIntent().getStringExtra(first);
Log.d("sysout", a);
ok.setOnClickListener(new ImageView.OnClickListener() { // 버튼이벤트 받아들일준비
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(a.equals("first"))
{
EditText edit1=(EditText)findViewById(R.id.text1);
Intent intent1 = new Intent(input.this, Two.class); // intent클래스에 a클래스 추가
String input1=edit1.getText().toString();
intent1.putExtra("text1", input1);
startActivity(intent1);// intent시작
}
else
{
EditText edit2=(EditText)findViewById(R.id.text1);
Intent intent2 = new Intent(input.this, Two.class); // intent클래스에 a클래스 추가
String input2=edit2.getText().toString();
intent2.putExtra("text2", input2);
startActivity(intent2);// intent시
}
}
});
}
}
---
1,2 에값을 유지하기위해서는 intent 속성에 putStringArrayListExtra 배열로 만들어서 넘기시면 될것같습니다.