정말 돌아 버립니다.

 

 

위 사진은 웹서비스를 이용해서 데이터베이스에 들어있는 단어를 가져오는것입니다.

string배열로 받아오는데요..

string[0] = 자동차

string[1] = car

string[2] = 공부

string[3] = study

 

이런식으로 받아오는데요...

 

아래 코드...

 package com.db;
import java.util.*;
import org.ksoap2.*;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.*;
import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.widget.AdapterView.OnItemClickListener;
public class DBActivity extends Activity {
    /** Called when the activity is first created. */
 
 private static final String SOAP_ACTION = "http://tempuri.org/SelectQuiz";
 private static final String METHOD_NAME = "SelectQuiz";
 private static final String NAMESPACE = "http://tempuri.org/";
 private static final String URL = "http://192.168.34.56/Quiz/Service1.asmx";
 private ListView lv;
 private TextView tv;
 private final ArrayList<String> qList = new ArrayList<String>();//문제
 private final ArrayList<String> aList = new ArrayList<String>();//답
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        lv = (ListView)findViewById(R.id.id_LV);
        tv =(TextView)findViewById(R.id.id_TV);
        
        lv.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
     long arg3) {
    StartQuiz(qList.get(arg2).toString(),aList.get(arg2).toString());
    
   }
   
  });
        
        MyDataSetting();
    }
    private void StartQuiz(String quiz, String answer) {
     String[] temp = new String[2];
     temp[0]=quiz;
     temp[1]=answer;
     
     Intent intent = new Intent(this,QuizActivity.class);
     intent.putExtra("quest",temp);
     startActivity(intent);
     
 }
 private void MyDataSetting() {
  
  
  final ArrayAdapter<String> aa;
  aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,qList);
  lv.setAdapter(aa);
  
  try
  {
   SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
   SoapSerializationEnvelope Envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
   Envelope.dotNet=true;
   Envelope.setOutputSoapObject(request);
   
   HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
   androidHttpTransport.call(SOAP_ACTION, Envelope);
   SoapObject resultString = (SoapObject)Envelope.bodyIn;
   
   
   for(int i=0;i<resultString.getPropertyCount();i++)
   {
    SoapObject data = (SoapObject)resultString.getProperty(i);
    
    for(int j=0;j<data.getPropertyCount();j+=2)
    {
     qList.add(0, data.getProperty(j).toString());     
    } 
    for(int j=1;j<data.getPropertyCount();j+=2)
    {
     aList.add(0, data.getProperty(j).toString());     
    }    
   }   
   
   aa.notifyDataSetChanged();
   
  }
  catch (Exception e) {
   
  }
  
  
 }
}

간단합니다.

 

만약

 

자동차를 클릭하면

"자동차" 와 "car"가 다음 인텐트로 넘어갑니다.

 

ggg.png

앞에서 받아온 string[2]에 집어 넣습니다.

string[0]=자동차

string[1]=car가 들어 가는 것이지요...

아래 코드를 보면

 package com.db;
import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
public class QuizActivity extends Activity{
 private String[] qaString;
 private EditText et_Answer;
 private Button bt_Answer;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.quest);
  
  Intent intent = getIntent();
  qaString = new String[2];  
  qaString = intent.getStringArrayExtra("quest");
  
  et_Answer = (EditText)findViewById(R.id.et_ANSWER);
  bt_Answer = (Button)findViewById(R.id.BT_ANSWER);
  
  TextView qtv = (TextView)findViewById(R.id.quest);
  
  qtv.setText(qaString[0]);
  
  bt_Answer.setOnClickListener(new OnClickListener() {
 
   TextView tv = (TextView)findViewById(R.id.answer);
   public void onClick(View v) {
    
    if(qaString[1].equals(et_Answer.getText()))
    {
     
     Toast.makeText(QuizActivity.this,"맞습니다." , Toast.LENGTH_SHORT).show();     
    
    }
    else
    {
     Toast.makeText(QuizActivity.this,"틀렸습니다.", Toast.LENGTH_SHORT).show();
     tv.setText(et_Answer.getText() + "\n" + qaString[1]);
 
    }
   }
  });
  
  
 }
}

 

여기서 버튼을 클릭하면 edittext에 있는 텍스트와 string[1]을 비교하는 것입니다.

setOnClickListener 이 부분의 if문 안에서 비교를 하는데 비교가 안먹히네요...

무조건 else로 넘어갑니다.

테스트로 텍스트뷰에 edittext와 string[1]을 띄어 봤지만 같습니다.

 

무슨 문제일까요??