안드로이드 개발 질문/답변
(글 수 45,052)
package com.example.test;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.annotation.SuppressLint;
import android.app.ListActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Toast;
@SuppressLint("ShowToast")
public class vod extends ListActivity {
IconTextView temp;
ArrayList<XmlData> m_xmlData = new ArrayList<XmlData>();
IconTextListAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.vod);
ImageButton backbutton = (ImageButton)findViewById(R.id.backbutton);
backbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
//requestWindowFeature(Window.FEATURE_NO_TITLE);
adapter = new IconTextListAdapter(this);
// add four items
Resources res = getResources();
m_xmlData = getXmlData("app");
// m_xmlData 가져오기
Iterator<XmlData> it = m_xmlData.iterator();
while (it.hasNext()) {
// Book str = it.next();
XmlData xmlData = it.next();
adapter.addItem(new IconTextItem(res.getDrawable(R.drawable.icon),
xmlData.d_title, xmlData.d_movie, xmlData.d_name));
}
setListAdapter(adapter);
}
이렇게 되어 있습니다.
이외 다른 액티비티들도 있습니다.
파싱하는 프로그램을 인터넷 검색에서 찾아 온건데요
제 프로그램이랑 다른 부분이 (public class vod extends ListActivity { ) ListActivity 입니다.
기존 다른 액티비티에서는 Activity로 되어 있습니다.
그래서 vod액티비티에서 Activity로 수정을 하게 되면 setListAdapter(adapter); 이놈이 에러 나네요.
그리고 인터넷에서 가져온 프로그램은 파싱결과를 레이아웃지정을 한곳에 보여주는게 아니고 스타일을 이용해서 새로운레이아웃을 만들어서 보여주더라구요
전 vod레이아웃이 있어서 거기에 적용 하려고 하니까 안나오네요
ㅜㅜ;; 초짜에겐 파싱은 너무 힘든거 같아요.
adapter.addItem(new IconTextItem(res.getDrawable(R.drawable.icon), 전 아이콘을 사용 하지 않기 때문에 (R.drawable.icon) 지우고 싶은데 이떡게 적용해야될까요???
setContentView(R.layout.vod);
ImageButton backbutton = (ImageButton)findViewById(R.id.backbutton);
backbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
이부분이 없으면 잘 됩니다. 하지만 레이아웃이 적용이 안되서 .....
log파일
10-11 06:23:14.021: E/AndroidRuntime(347): FATAL EXCEPTION: main
10-11 06:23:14.021: E/AndroidRuntime(347): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.test/com.example.test.vod}; have you declared this activity in your AndroidManifest.xml?
10-11 06:23:14.021: E/AndroidRuntime(347): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.app.Activity.startActivityForResult(Activity.java:2827)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.app.Activity.startActivity(Activity.java:2933)
10-11 06:23:14.021: E/AndroidRuntime(347): at com.example.servecommunty.MainActivity$2.onClick(MainActivity.java:37)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.view.View.performClick(View.java:2485)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.view.View$PerformClick.run(View.java:9080)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.os.Handler.handleCallback(Handler.java:587)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.os.Handler.dispatchMessage(Handler.java:92)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.os.Looper.loop(Looper.java:123)
10-11 06:23:14.021: E/AndroidRuntime(347): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-11 06:23:14.021: E/AndroidRuntime(347): at java.lang.reflect.Method.invokeNative(Native Method)
10-11 06:23:14.021: E/AndroidRuntime(347): at java.lang.reflect.Method.invoke(Method.java:507)
10-11 06:23:14.021: E/AndroidRuntime(347): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-11 06:23:14.021: E/AndroidRuntime(347): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-11 06:23:14.021: E/AndroidRuntime(347): at dalvik.system.NativeStart.main(Native Method)
vod Activity를 매니패스트에 등록하셨나요?
그리고 Activity에서 setAdapter를 하시려면 (리스트뷰객체).setAdapter() 로 하셔야합니다^^