저는 Android 개발을 처음 사용하고 있으며 두 개의 탭이 포함 된 응용 프로그램을 만들었습니다. 한 탭에서 이미지가 포함 된 그리드가 표시되고 다른 페이지에 표시됩니다. 3 개의 XML 레이아웃 파일과 3 개의 Java 클래스 파일을 작성했습니다. 코드는 아래에 있습니다.탭 응용 프로그램 런타임 중 오류가 발생했습니다.
MainActivity.java
public class MainActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabHost tabhost = getTabHost();
TabSpec imgspec = tabhost.newTabSpec("Images");
imgspec.setIndicator("Images");
Intent imgIntent = new Intent(this,ImageAdapter.class);
imgspec.setContent(imgIntent);
TabSpec pagespec = tabhost.newTabSpec("NewPage");
pagespec.setIndicator("New Page");
Intent pageIntent = new Intent(this,pageActivity.class);
pagespec.setContent(pageIntent);
tabhost.addTab(imgspec);
tabhost.addTab(pagespec);
}
}
ImageAdapter.java
public class ImageAdapter extends BaseAdapter {
Context mContext;
public Integer[] mThumbIds = {R.drawable.ic_action_search , R.drawable.ic_launcher , R.drawable.img1 };
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount(){
return mThumbIds.length ;
}
public Object getItem(int position){
return mThumbIds[position];
}
public View getView(int position , View convertView , ViewGroup parent){
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mThumbIds[position]);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
return imageView;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
}
pageActivity.java
public class pageActivity extends Activity {
}
activity_main (I 나중에 pageActivity.java에 대한 코드를 작성 할 수 있습니다) .xml
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_height="fill_parent"
android:layout_width="fill_parent"/>
</LinearLayout>
</TabHost>
img_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</GridView>
page_layout.xml 런타임시
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
, 응용 프로그램이 충돌합니다. LogCat을 살펴본 후 ImageAdapter.java 파일에 문제가있는 것으로 보입니다. 도와주세요 .
로그 캣 오류 당신은 ImageAdapter
와 탭 중 하나를 설정하려고
08-27 19:16:14.772: E/AndroidRuntime(390): FATAL EXCEPTION: main
08-27 19:16:14.772: E/AndroidRuntime(390): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.prac1/com.example.prac1.MainActivity}: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.prac1/com.example.prac1.ImageAdapter}: java.lang.InstantiationException: com.example.prac1.ImageAdapter
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.os.Handler.dispatchMessage(Handler.java:99)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.os.Looper.loop(Looper.java:130)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-27 19:16:14.772: E/AndroidRuntime(390): at java.lang.reflect.Method.invokeNative(Native Method)
08-27 19:16:14.772: E/AndroidRuntime(390): at java.lang.reflect.Method.invoke(Method.java:507)
08-27 19:16:14.772: E/AndroidRuntime(390): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-27 19:16:14.772: E/AndroidRuntime(390): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-27 19:16:14.772: E/AndroidRuntime(390): at dalvik.system.NativeStart.main(Native Method)
08-27 19:16:14.772: E/AndroidRuntime(390): Caused by: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.prac1/com.example.prac1.ImageAdapter}: java.lang.InstantiationException: com.example.prac1.ImageAdapter
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1487)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:654)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.widget.TabHost.setCurrentTab(TabHost.java:326)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.widget.TabHost.addTab(TabHost.java:216)
08-27 19:16:14.772: E/AndroidRuntime(390): at com.example.prac1.MainActivity.onCreate(MainActivity.java:32)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
08-27 19:16:14.772: E/AndroidRuntime(390): ... 11 more
08-27 19:16:14.772: E/AndroidRuntime(390): Caused by: java.lang.InstantiationException: com.example.prac1.ImageAdapter
08-27 19:16:14.772: E/AndroidRuntime(390): at java.lang.Class.newInstanceImpl(Native Method)
08-27 19:16:14.772: E/AndroidRuntime(390): at java.lang.Class.newInstance(Class.java:1409)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
08-27 19:16:14.772: E/AndroidRuntime(390): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
08-27 19:16:14.772: E/AndroidRuntime(390): ... 20 more
포스트 로그 캣 오류 PLZ – petey
또한 로그 캣을 게시하시기 바랍니다. – Shrikant
TabActivity에 대한 비추천 경고가 나타 났습니까? ActionBarSherlock에서 읽으십시오. –