package exam.Read;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class Read extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayList list = new ArrayList();
//파일 읽기
String strFileName = "HYUNDAI.ini";
StringBuffer strBuffer = new StringBuffer();
try {
FileInputStream fis = openFileInput(strFileName.toString());
DataInputStream dataIO = new DataInputStream(fis);
String strLine = null;
while( (strLine = dataIO.readLine()) != null)
strBuffer.append(strLine);
//strBuffer.append(strLine + "\n");
//list.add(strLine);
StringTokenizer st = new StringTokenizer(strBuffer.toString(), ",");
while (st.hasMoreTokens())
{
list.add(st.nextToken());
}
dataIO.close();
fis.close();
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Spinner s = (Spinner) findViewById(R.id.Spinner01);
ArrayAdapter adapter1 = new ArrayAdapter(this,
android.R.layout.simple_list_item_multiple_choice, list);
adapter1.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter1);
}
}
텍스트문서 내용은 HYUNDAI = nf, ge, eq 였습니다.
결과는 다음과 같게 나왔습니다.
여기에서,
보다시피 결과가 HYUNDAI = nf
ge
eq
라고 나오는데요.
제목 HYUNDAI 빼고
NF
GE
EQ
로 나오게 할수는 없는지
또 여러개의 spinner를 만드려고 합니다.
예를 들어 텍스트 파일에
HYUNDAI = nf, ge, eq
KIA = K5, k7
입력하구요.
결과는
스피너2개에 각각
1. NF
GE
EG
2.
K5
K7
나오게 하고 싶어요.
그리고 텍스트파일에 한글 불러오는데,
스피너상에 글짜가 깨져서 나옵니다;;;;;;
L대문자 오류나서 바꿔서 작동했더니 제대로 run은 되는데요.
09-13 01:00:53.748: DEBUG/AndroidRuntime(2139): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
09-13 01:00:53.748: DEBUG/AndroidRuntime(2139): CheckJNI is ON
09-13 01:00:53.938: DEBUG/AndroidRuntime(2139): --- registering native functions ---
09-13 01:00:54.249: DEBUG/ddm-heap(2139): Got feature list request
09-13 01:00:54.630: DEBUG/AndroidRuntime(2139): Shutting down VM
09-13 01:00:54.630: DEBUG/dalvikvm(2139): DestroyJavaVM waiting for non-daemon threads to exit
09-13 01:00:54.640: DEBUG/dalvikvm(2139): DestroyJavaVM shutting VM down
09-13 01:00:54.640: DEBUG/dalvikvm(2139): HeapWorker thread shutting down
09-13 01:00:54.640: DEBUG/dalvikvm(2139): HeapWorker thread has shut down
09-13 01:00:54.649: DEBUG/jdwp(2139): JDWP shutting down net...
09-13 01:00:54.649: INFO/dalvikvm(2139): Debugger has detached; object registry had 1 entries
09-13 01:00:54.659: DEBUG/dalvikvm(2139): VM cleaning up
09-13 01:00:54.669: ERROR/AndroidRuntime(2139): ERROR: thread attach failed
09-13 01:00:54.688: DEBUG/dalvikvm(2139): LinearAlloc 0x0 used 629532 of 5242880 (12%)
09-13 01:00:55.059: DEBUG/AndroidRuntime(2147): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
09-13 01:00:55.059: DEBUG/AndroidRuntime(2147): CheckJNI is ON
09-13 01:00:55.249: DEBUG/AndroidRuntime(2147): --- registering native functions ---
09-13 01:00:55.550: DEBUG/ddm-heap(2147): Got feature list request
09-13 01:00:55.938: INFO/ActivityManager(52): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=exam.Read/.Read }
09-13 01:00:56.009: DEBUG/AndroidRuntime(2147): Shutting down VM
09-13 01:00:56.009: DEBUG/dalvikvm(2147): DestroyJavaVM waiting for non-daemon threads to exit
09-13 01:00:56.018: DEBUG/dalvikvm(2147): DestroyJavaVM shutting VM down
09-13 01:00:56.018: DEBUG/dalvikvm(2147): HeapWorker thread shutting down
09-13 01:00:56.018: DEBUG/dalvikvm(2147): HeapWorker thread has shut down
09-13 01:00:56.018: DEBUG/jdwp(2147): JDWP shutting down net...
09-13 01:00:56.028: INFO/dalvikvm(2147): Debugger has detached; object registry had 1 entries
09-13 01:00:56.028: DEBUG/dalvikvm(2147): VM cleaning up
09-13 01:00:56.038: ERROR/AndroidRuntime(2147): ERROR: thread attach failed
09-13 01:00:56.069: INFO/ActivityManager(52): Start proc exam.Read for activity exam.Read/.Read: pid=2154 uid=10029 gids={}
09-13 01:00:56.099: DEBUG/dalvikvm(2147): LinearAlloc 0x0 used 639500 of 5242880 (12%)
09-13 01:00:56.268: DEBUG/ddm-heap(2154): Got feature list request
09-13 01:00:56.708: DEBUG/AndroidRuntime(2154): Shutting down VM
09-13 01:00:56.729: WARN/dalvikvm(2154): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
09-13 01:00:56.729: ERROR/AndroidRuntime(2154): Uncaught handler: thread main exiting due to uncaught exception
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): java.lang.RuntimeException: Unable to start activity ComponentInfo{exam.Read/exam.Read.Read}: java.lang.NullPointerException
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.os.Handler.dispatchMessage(Handler.java:99)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.os.Looper.loop(Looper.java:123)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.app.ActivityThread.main(ActivityThread.java:4363)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at java.lang.reflect.Method.invokeNative(Native Method)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at java.lang.reflect.Method.invoke(Method.java:521)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at dalvik.system.NativeStart.main(Native Method)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): Caused by: java.lang.NullPointerException
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at exam.Read.Read.onCreate(Read.java:51)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
09-13 01:00:56.739: ERROR/AndroidRuntime(2154): ... 11 more
09-13 01:00:56.759: INFO/Process(52): Sending signal. PID: 2154 SIG: 3
09-13 01:00:56.759: INFO/dalvikvm(2154): threadid=7: reacting to signal 3
09-13 01:00:56.759: ERROR/dalvikvm(2154): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
09-13 01:01:05.972: WARN/ActivityManager(52): Launch timeout has expired, giving up wake lock!
09-13 01:01:06.343: WARN/ActivityManager(52): Activity idle timeout for HistoryRecord{43cefd20 exam.Read/.Read}
while( (strLine = dataIO.readLine()) != null)
strBuffer.append(strLine);
이거 안 막으셨나요? 이거 돌리고나면 이미 끝부분을 가리키고 있어서
str.indexOf("=") << "="이 처음 나오는 위치를 반환하는것을 깜빡했네요
근데 text 파일 내용이 현재
-------------list1.txt-----------------------------------
Company = HYUNDAI,KIA,르노삼성,GM대우
H = 소나타(NF), 제네시스(GE), 에쿠스(EQ)
---------------------------------------------------------
입니다.
위 같은 경우 2개의 스피너로 각각 넣고 싶은데요.
현재는
이상태로 나옵니다.
각 스피너에 첫번째 줄이 같은 내용으로 반복해서요..
또한 한글이 깨져서 나오네요;;;;;
해결 방법이 없을까요??
감사합니다
잉여스런 저의 의견을 말하자면 readline으로 text를 긁어온다 하시면
String str = reader.readline();
StringTokenizer st = new StringTokenizer(str.substring(str.indexOf("=")).trim(), ",");
이런식으로 하시면 되지 않을까요..