마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

edittext에 text를 가져와 문자를 비교하고싶습니다.

0 추천

제가 assets폴더에 전국자전거보관소xml를 넣어놔 xml파일을 읽어오고 있습니다.

제가 궁금한 것은 edittext에서 교대라는 특정 키워라고치면 xml파일에 있는 교대에 관한 정보만을 가져오고 싶습니다.(xml파일에서는 교대역8번출구앞으로 되어있는데 풀네임으로 안쓰고 교대라고만 쓰면 해당정보를 가져오고 싶습니다.)

현재 아래 그림 코드처럼 전국에 있는 보관소이름만을 가져오고 있습니다.

버튼을 만들어 위에서 질문한 것처럼 할 수 있을까요 ??

MainActivity.java

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv=(TextView)findViewById(R.id.data);
        String file="dj.xml";
        String result="";
        try {
            InputStream is=getAssets().open(file);
            int size=is.available();
            byte[] buffer=new byte[size];
            is.read(buffer);
            is.close();
            result=new String(buffer,"UTF-8");

            XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
            factory.setNamespaceAware(true); //xml 네임스페이스 지원 여부 설정
            XmlPullParser xpp=factory.newPullParser();
            xpp.setInput(new StringReader(result));
            int eventType=xpp.getEventType();
            /*
             * eventType
             * 1.START_TAG
             * 2.END_TAG
             * 3.TEXT
             * etc
             * */
            boolean bSet=false;
            while(eventType!=XmlPullParser.END_DOCUMENT){
                if(eventType== XmlPullParser.START_TAG){
                    String tag_name = xpp.getName();
                    if(tag_name.equals("자전거보관소명")   						|tag_name.equals("위도"))
                        bSet=true;
                }else if(eventType==XmlPullParser.TEXT){
                    if(bSet){
                        String data=xpp.getText();
                        tv.append(data+"\n");
                        bSet=false;
                    }
                }else if(eventType==XmlPullParser.END_TAG);
                eventType=xpp.next();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
wns0789 (500 포인트) 님이 2019년 4월 2일 질문

1개의 답변

0 추천
String str = editText.getText().toString();

if (tag_name.contains(str)) {}

간단히 contains로 검사하면 될거같고

정규표현식으로 검사하는 방법도 있겠네요.
franny (1,760 포인트) 님이 2019년 4월 2일 답변
...