android:错误获取tabview应用程序崩溃

时间:2014-04-11 08:53:42

标签: android android-intent tabs android-tabhost

我有Android应用程序,我从前一个活动中获取一个字符串并将其转移到下一个活动。 我用一个标签做的时候工作正常。但当我为第二个标签指定它时,应用程序崩溃

日志cat中的

错误您必须指定一种创建选项卡指示符的方法。

代码已解决

 package com.example.pms;

import android.app.TabActivity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TextView;
import android.widget.TabHost.TabSpec;






public class TabControl extends TabActivity 
{
    public static TabControl mTabControl;
    public static TextView textView;
    public static TabHost tabHost ;
    final Context context = this;
    //public static String strEmployeeID = "";
    @SuppressWarnings("deprecation")
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        Resources resources = getResources(); 
        TabHost tabHost = getTabHost(); 




          Bundle extras = getIntent().getExtras();
          String strEmployeeID="";
         TabSpec photospec = tabHost.newTabSpec("Hourly entry");
            // setting Title and Icon for the Tab
            photospec.setIndicator("Hourly Entry");

              if (extras != null)
              {

                  String value = extras.getString("new_variable_name");
//                Toast.makeText(getBaseContext(),  value, Toast.LENGTH_LONG).show();
                  strEmployeeID = value;
              }


             Intent photosIntent = new Intent(getApplicationContext(), HourlyEntry.class);
             photosIntent.putExtra("new_variable_name",strEmployeeID);
             photospec.setContent(photosIntent);



             TabSpec photospec1 = tabHost.newTabSpec("Leave app");
                // setting Title and Icon for the Tab
                photospec1.setIndicator("Leave App");

                  if (extras != null)
                  {

                      String value = extras.getString("new_variable_name");
//                    Toast.makeText(getBaseContext(),  value, Toast.LENGTH_LONG).show();
                      strEmployeeID = value;
                  }


                 Intent photosIntent1 = new Intent(getApplicationContext(), LeaveApp.class);
                 photosIntent1.putExtra("new_variable_name",strEmployeeID);
                 photospec1.setContent(photosIntent1);


        tabHost.addTab(photospec);
        tabHost.addTab(photospec1);



        tabHost.setCurrentTab(0);

    }


}

1 个答案:

答案 0 :(得分:2)

更改此

    TabSpec photospec1 = tabHost.newTabSpec("Photos");
      // setting Title and Icon for the Tab
    photospec.setIndicator("", getResources().getDrawable(R.drawable.tab_home));

使用

     TabSpec photospec1 = tabHost.newTabSpec("Photos2");
            // setting Title and Icon for the Tab
     photospec1.setIndicator("", getResources().getDrawable(R.drawable.tab_home));
      if (extras != null)

              {
                  String value = extras.getString("new_variable_name");
                  strEmployeeID = value;
              }

         Intent photosIntent1 = new Intent(getApplicationContext(), LeaveApp.class);
         photosIntent1.putExtra("new_variable_name",strEmployeeID);
         photospec1.setContent(photosIntent1);

您的问题就在这里,您从未将Tab Indicator设置为第二个标签正确,如下所示

  photospec1.setIndicator("", getResources().getDrawable(R.drawable.tab_home));

此外,您的问题是在这里将错误set Content Intent设置为第二个标签正确,如下所示:

    Intent photosIntent1 = new Intent(getApplicationContext(), LeaveApp.class);
    photosIntent1.putExtra("new_variable_name",strEmployeeID);
    photospec1.setContent(photosIntent1);