안드로이드 개발 질문/답변
(글 수 45,052)
현재 샘플 키보드 소스로 키보드를 하나 만들어보고 있습니다.
일단 xmlpullparser를 이용하여 qwerty.xml의 속성값을 가져왔는데요
가져온 속성값으로 해당 속성을 찾아내서 값을 변경한 후 xml파일을 저장하고 키보드에 적용 시키는 방법을 알 수가 없습니다;
값을 변경하는 법과 xml을 저장하고 키보드에 적용 시키는 법을 알고 싶습니다
qwerty.xml
일단 xmlpullparser를 이용하여 qwerty.xml의 속성값을 가져왔는데요
가져온 속성값으로 해당 속성을 찾아내서 값을 변경한 후 xml파일을 저장하고 키보드에 적용 시키는 방법을 알 수가 없습니다;
값을 변경하는 법과 xml을 저장하고 키보드에 적용 시키는 법을 알고 싶습니다
package com.example.android.softkeyboard;
import android.inputmethodservice.*; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.widget.TextView; import android.widget.Toast; import android.widget.Button; import java.util.ArrayList; import org.xmlpull.v1.XmlPullParser;
public class xmlpullparser extends Activity {
Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
}
public void onResume()
{
super.onResume();
btn = (Button)findViewById(R.id.Button01);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try
{
XmlPullParser xpp = getResources().getXml(R.xml.qwerty);
String sTag;
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT)
{
switch(eventType)
{
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.START_TAG:
sTag = xpp.getName();
if(xpp.getName().equals("Key"))
{
xpp.getAttributeValue(0);
if(xpp.getAttributeValue(0) == "1")
{
xpp.setProperty("android:Label", "ㄱ");
}
}
break;
case XmlPullParser.END_TAG:
sTag = xpp.getName();
break;
case XmlPullParser.TEXT:
break;
}
eventType = xpp.next();
}
}
catch(Exception e)
{
}
}
});
}
}qwerty.xml
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" android:keyWidth="25%p" android:horizontalGap="0px" android:verticalGap="0px" android:keyHeight="@dimen/key_height">
<Row>
<Key android:codes="1" android:keyLabel="q" android:keyEdgeFlags="left"/>
<Key android:codes="2" android:keyLabel="i"/>
<Key android:codes="3" android:keyLabel="o"/>
<Key android:codes="4" android:keyLabel="p" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="5" android:keyLabel="a" android:keyEdgeFlags="left"/>
<Key android:codes="6" android:keyLabel="j"/>
<Key android:codes="7" android:keyLabel="k"/>
<Key android:codes="8" android:keyLabel="l" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="9" android:keyLabel="z" android:keyEdgeFlags="left"/>
<Key android:codes="10" android:keyLabel="x"/>
<Key android:codes="11" android:keyLabel="c"/>
<Key android:codes="12" android:keyLabel="v" android:keyEdgeFlags="right"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="13" android:keyLabel="a" android:keyEdgeFlags="left"/>
<Key android:codes="14" android:keyLabel="a"/>
<Key android:codes="15" android:keyLabel="a"/>
<Key android:codes="16" android:keyLabel="." android:keyEdgeFlags="right"/>
</Row>
</Keyboard>



