Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android上的TabHost addTabs使apk崩溃_Java_Android_Android Intent_Android Activity - Fatal编程技术网

Java Android上的TabHost addTabs使apk崩溃

Java Android上的TabHost addTabs使apk崩溃,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我有一个我无法解决的问题,当apk运行时TabHost崩溃的问题,我一直在为此努力,但仍然无法解决,请帮助 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l

我有一个我无法解决的问题,当apk运行时TabHost崩溃的问题,我一直在为此努力,但仍然无法解决,请帮助

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">


    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

        <TabWidget
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@android:id/tabs"
            android:layout_gravity="bottom"></TabWidget>

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="bottom"
            android:id="@android:id/tabcontent"></FrameLayout>

    </LinearLayout>
    </TabHost>
</RelativeLayout>
MapActivity.java

package com.example.asus.smartcity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
import android.widget.TabHost;

public class MainActivity extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TabHost tabhostku = (TabHost)findViewById(android.R.id.tabhost);
        tabhostku.setup();

        TabHost.TabSpec spec;
        Intent intent;

        intent = new Intent().setClass(this, MapActivity.class);
        spec = tabhostku.newTabSpec("map");
        spec.setIndicator("map",null);
        spec.setContent(intent);
        tabhostku.addTab(spec);

        intent = new Intent().setClass(this, PlaceActivity.class);
        spec = tabhostku.newTabSpec("place");
        spec.setIndicator("place",null);
        spec.setContent(intent);
        tabhostku.addTab(spec);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
import android.app.Activity;
import android.os.Bundle;
/**
 * Created by Asus on 11-Nov-15.
 */
public class MapActivity extends Activity{

    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);
    }
}
package com.example.asus.smartcity;


import android.os.Bundle;
import android.app.ListActivity;
import android.widget.ArrayAdapter;
/**
 * Created by Asus on 11-Nov-15.
 */
public class PlaceActivity extends ListActivity {

    String []placeku={"KBS","Surabaya Carnival","Kebun Bibit"};

    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.place);

        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,placeku));
    }
}
PlaceActivity.java

package com.example.asus.smartcity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
import android.widget.TabHost;

public class MainActivity extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TabHost tabhostku = (TabHost)findViewById(android.R.id.tabhost);
        tabhostku.setup();

        TabHost.TabSpec spec;
        Intent intent;

        intent = new Intent().setClass(this, MapActivity.class);
        spec = tabhostku.newTabSpec("map");
        spec.setIndicator("map",null);
        spec.setContent(intent);
        tabhostku.addTab(spec);

        intent = new Intent().setClass(this, PlaceActivity.class);
        spec = tabhostku.newTabSpec("place");
        spec.setIndicator("place",null);
        spec.setContent(intent);
        tabhostku.addTab(spec);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
import android.app.Activity;
import android.os.Bundle;
/**
 * Created by Asus on 11-Nov-15.
 */
public class MapActivity extends Activity{

    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);
    }
}
package com.example.asus.smartcity;


import android.os.Bundle;
import android.app.ListActivity;
import android.widget.ArrayAdapter;
/**
 * Created by Asus on 11-Nov-15.
 */
public class PlaceActivity extends ListActivity {

    String []placeku={"KBS","Surabaya Carnival","Kebun Bibit"};

    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.place);

        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,placeku));
    }
}

更改后,您必须将活动更改为ActivityGroup

tabhostku.setup();

试试这个

变,

tabhostku.setup();

onPause
onResume
中添加以下代码

@Override
public void onPause() {
    super.onPause();
    try {
        mlam.dispatchPause(isFinishing());
    } catch (Exception e) {}
}

@Override
public void onResume() {
    super.onResume();
    try {
        mlam.dispatchResume();
    } catch (Exception e) {}
}