android中的TabHost 我正在尝试将Tab主机升级到Android 我得到了错误,因为我已经张贴在logcat 关于如何克服这个问题有什么想法吗 JSON响应和其他功能在工作时非常好 好吧,没有塔布斯汀,但我已经威胁到了下面的塔布斯汀 有错误

android中的TabHost 我正在尝试将Tab主机升级到Android 我得到了错误,因为我已经张贴在logcat 关于如何克服这个问题有什么想法吗 JSON响应和其他功能在工作时非常好 好吧,没有塔布斯汀,但我已经威胁到了下面的塔布斯汀 有错误,android,android-listview,android-tabhost,Android,Android Listview,Android Tabhost,AndroidTabAndListView.java public class AndroidTabAndListView extends TabActivity { // TabSpec Names private static final String INBOX_SPEC = "Inbox"; private static final String OUTBOX_SPEC = "Outbox"; private static fin

AndroidTabAndListView.java

public class AndroidTabAndListView extends TabActivity {

    // TabSpec Names
        private static final String INBOX_SPEC = "Inbox";
        private static final String OUTBOX_SPEC = "Outbox";
        private static final String PROFILE_SPEC = "Profile";

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            TabHost tabHost = getTabHost();

            // Inbox Tab
            TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
            Intent inboxIntent = new Intent(this, MainActivity.class);
            // Tab Content
            inboxSpec.setContent(inboxIntent);

            // Outbox Tab
            TabSpec PriceSpec = tabHost.newTabSpec(OUTBOX_SPEC);
            Intent PriceIntent = new Intent(this, PriceDescriptionActivity.class);
            PriceSpec.setContent(PriceIntent);

            // Profile Tab
            TabSpec DistanceSpec = tabHost.newTabSpec(PROFILE_SPEC);
            Intent DistanceIntent = new Intent(this, DistanceDiscriptionActivity.class);
            DistanceSpec.setContent(DistanceIntent);

            // Adding all TabSpec to TabHost
            tabHost.addTab(inboxSpec); 
            tabHost.addTab(PriceSpec); 
            tabHost.addTab(DistanceSpec); 
        }

}
public class MainActivity extends Activity {

    // url to make request
    private static String url = "http://54.218.73.244:7004/";
    TextView timedisplay;
    String item;
    private HashMap<Integer, String> TimeMap = new HashMap<Integer, String>();
    ListView yourListView;
    List<Item> yourData = new ArrayList<Item>();
    MyAdapter customAdapter;
    ProgressDialog progressDialog;
    String restaurant_name;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        timedisplay = (TextView) findViewById(R.id.RestaurantTimeID);

        yourListView = (ListView) findViewById(R.id.listViewID);
        // Instantiating ProgressDialog with onCreate method


        progressDialog = new ProgressDialog(MainActivity.this);
        new ParsingAsync().execute();


    }

    private class ParsingAsync extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog = ProgressDialog.show(MainActivity.this, "",
                    "Please Wait", true, false);

        }

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub

            String _response = null;
            String _response1 = null;
            try {
                HttpClient httpclient = new DefaultHttpClient();
                httpclient.getParams().setParameter(
                        CoreProtocolPNames.PROTOCOL_VERSION,
                        HttpVersion.HTTP_1_1);
                HttpGet request = new HttpGet(url);
                HttpResponse response = httpclient.execute(request);
                HttpEntity resEntity = response.getEntity();
                _response = EntityUtils.toString(resEntity);
                JSONObject jsonObject = new JSONObject(_response);
                JSONArray first_array = jsonObject.getJSONArray("restaurants");
                JSONArray second_array = jsonObject
                        .getJSONArray("RestaurantTimings");
                for (int i = 0; i < first_array.length(); i++) {
                    JSONObject c = second_array.getJSONObject(i);
                    Item item = new Item();

                    // Storing each json item in variable
                    int id = c.getInt("_id");
                    String TIME = c.getString("RestaurantTime");
                    item.setTime(TIME);

                    c = first_array.getJSONObject(i);

                    String NAME = c.getString("restaurantNAME");
                    item.setName(NAME);

                    yourData.add(item);
                }

                HttpClient httpclient1 = new DefaultHttpClient();
                httpclient.getParams().setParameter(
                        CoreProtocolPNames.PROTOCOL_VERSION,
                        HttpVersion.HTTP_1_1);


            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return null;

        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            progressDialog.dismiss();

            customAdapter = new MyAdapter(MainActivity.this,
                    R.layout.itemlistrow, yourData);
            yourListView.setAdapter(customAdapter);
            yourListView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    item = yourData.get(position).getName();

                    // String sendingurl="url1?param1=value1";

                    Intent i = new Intent(MainActivity.this,
                            RestaurantDesc.class);
                    i.putExtra("REST", item.toString());
                    // i.putExtra("key", yourData.get(position).getUrl());
                    //i.putExtra("CC_RES", item.toString());
                    startActivity(i);

                }
            });
        }

    }

}
MainActivity.java

public class AndroidTabAndListView extends TabActivity {

    // TabSpec Names
        private static final String INBOX_SPEC = "Inbox";
        private static final String OUTBOX_SPEC = "Outbox";
        private static final String PROFILE_SPEC = "Profile";

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            TabHost tabHost = getTabHost();

            // Inbox Tab
            TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
            Intent inboxIntent = new Intent(this, MainActivity.class);
            // Tab Content
            inboxSpec.setContent(inboxIntent);

            // Outbox Tab
            TabSpec PriceSpec = tabHost.newTabSpec(OUTBOX_SPEC);
            Intent PriceIntent = new Intent(this, PriceDescriptionActivity.class);
            PriceSpec.setContent(PriceIntent);

            // Profile Tab
            TabSpec DistanceSpec = tabHost.newTabSpec(PROFILE_SPEC);
            Intent DistanceIntent = new Intent(this, DistanceDiscriptionActivity.class);
            DistanceSpec.setContent(DistanceIntent);

            // Adding all TabSpec to TabHost
            tabHost.addTab(inboxSpec); 
            tabHost.addTab(PriceSpec); 
            tabHost.addTab(DistanceSpec); 
        }

}
public class MainActivity extends Activity {

    // url to make request
    private static String url = "http://54.218.73.244:7004/";
    TextView timedisplay;
    String item;
    private HashMap<Integer, String> TimeMap = new HashMap<Integer, String>();
    ListView yourListView;
    List<Item> yourData = new ArrayList<Item>();
    MyAdapter customAdapter;
    ProgressDialog progressDialog;
    String restaurant_name;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        timedisplay = (TextView) findViewById(R.id.RestaurantTimeID);

        yourListView = (ListView) findViewById(R.id.listViewID);
        // Instantiating ProgressDialog with onCreate method


        progressDialog = new ProgressDialog(MainActivity.this);
        new ParsingAsync().execute();


    }

    private class ParsingAsync extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog = ProgressDialog.show(MainActivity.this, "",
                    "Please Wait", true, false);

        }

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub

            String _response = null;
            String _response1 = null;
            try {
                HttpClient httpclient = new DefaultHttpClient();
                httpclient.getParams().setParameter(
                        CoreProtocolPNames.PROTOCOL_VERSION,
                        HttpVersion.HTTP_1_1);
                HttpGet request = new HttpGet(url);
                HttpResponse response = httpclient.execute(request);
                HttpEntity resEntity = response.getEntity();
                _response = EntityUtils.toString(resEntity);
                JSONObject jsonObject = new JSONObject(_response);
                JSONArray first_array = jsonObject.getJSONArray("restaurants");
                JSONArray second_array = jsonObject
                        .getJSONArray("RestaurantTimings");
                for (int i = 0; i < first_array.length(); i++) {
                    JSONObject c = second_array.getJSONObject(i);
                    Item item = new Item();

                    // Storing each json item in variable
                    int id = c.getInt("_id");
                    String TIME = c.getString("RestaurantTime");
                    item.setTime(TIME);

                    c = first_array.getJSONObject(i);

                    String NAME = c.getString("restaurantNAME");
                    item.setName(NAME);

                    yourData.add(item);
                }

                HttpClient httpclient1 = new DefaultHttpClient();
                httpclient.getParams().setParameter(
                        CoreProtocolPNames.PROTOCOL_VERSION,
                        HttpVersion.HTTP_1_1);


            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return null;

        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            progressDialog.dismiss();

            customAdapter = new MyAdapter(MainActivity.this,
                    R.layout.itemlistrow, yourData);
            yourListView.setAdapter(customAdapter);
            yourListView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    item = yourData.get(position).getName();

                    // String sendingurl="url1?param1=value1";

                    Intent i = new Intent(MainActivity.this,
                            RestaurantDesc.class);
                    i.putExtra("REST", item.toString());
                    // i.putExtra("key", yourData.get(position).getUrl());
                    //i.putExtra("CC_RES", item.toString());
                    startActivity(i);

                }
            });
        }

    }

}

从错误中,它说“您必须指定一种方法来创建选项卡指示器”。。。。但是如何解决它

您需要设置
指示符
inboxSpec.setIndicator(收件箱_规范)如下所示:

TabHost TabHost=getTabHost();
//收件箱选项卡
TabSpec inboxSpec=tabHost.newTabSpec(收件箱规格);
Intent inboxIntent=新的Intent(此,MainActivity.class);

收件箱规格设置指示器(收件箱规格) 该指示器告诉tabspec要显示的内容

例如,您可以将布局充气到其中

DistanceSpec.setIndicator(inflater.inflate(layout.distance_tab, null));
并让distance_tab.xml具有类似于

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right|center_vertical"
android:background="#00ffffff">

<LinearLayout
    android:orientation="vertical"
    android:gravity="center"
    android:layout_width="fill_parent"
    android:layout_weight="1"
    android:id="@+id/layout_distance_tab"
    android:background="@drawable/tab_drawable"
    android:layout_height="60dip">

    <ImageView
        android:id="@+id/image_tab_icon"
        android:layout_marginTop="5dip"
        android:layout_marginBottom="1dip"
        android:layout_height="30dip"
        android:layout_width="45dip"
        android:background="@drawable/tab_distance_drawable"></ImageView>

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="10.5dip"
        android:textColor="@drawable/text_tab_indicator"
        android:text="Distance"
        android:layout_marginTop="2dip"></TextView>

</LinearLayout>
</LinearLayout>


@GrlsHu。。。。。完美的你的解决方案有效。。。。。就我所知,我想问。。。。为什么我们需要设定指标。。。。它是复合的吗?指示符分别定义每个选项卡。因此,有必要提供每个选项卡指示器,以便在选择选项卡时,每个选项卡将从其他选项卡中单独识别。很高兴帮助您……:)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right|center_vertical"
android:background="#00ffffff">

<LinearLayout
    android:orientation="vertical"
    android:gravity="center"
    android:layout_width="fill_parent"
    android:layout_weight="1"
    android:id="@+id/layout_distance_tab"
    android:background="@drawable/tab_drawable"
    android:layout_height="60dip">

    <ImageView
        android:id="@+id/image_tab_icon"
        android:layout_marginTop="5dip"
        android:layout_marginBottom="1dip"
        android:layout_height="30dip"
        android:layout_width="45dip"
        android:background="@drawable/tab_distance_drawable"></ImageView>

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="10.5dip"
        android:textColor="@drawable/text_tab_indicator"
        android:text="Distance"
        android:layout_marginTop="2dip"></TextView>

</LinearLayout>
</LinearLayout>