제가 누락되거나 잘못한 것을 이해하기 위해서는 도움이 필요합니다. 내 목표는 선택 될 때 내 탭의 배경색을 흰색으로 설정하고 선택하지 않으면 검은 색으로 설정하는 것입니다. 하지만 처음에는 코드가있는 테스트로 배경색을 빨간색으로 설정하려고합니다. getTabHost(). getTabWidget(). getChildAt (0) .setBackgroundColor (Color.parseColor ("# 4E4E9C"));. 내 코드는 다음과 같은 이유로 시작하기 전에 응용 프로그램을 충돌시킵니다. 바이너리 XML 파일 줄 # 19 : layout_width 특성을 제공해야합니다. 나는 어디에서 시작 해야할지 몰라? 내가 뭘 놓치고 있니? width 속성과 관련이있는 것은 무엇입니까?/그것이 경우, 충분히 투명성을해야합니까, image'.PNG '형식입니다, R.drawable.searchtab 내 tab_host.xml내 탭의 배경색을 설정할 수 없습니까?
public class Tabs extends TabActivity
{
private static final String TAG = "TabHostActivity";
private boolean mHaveShownStartDialog = false;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_host);
setOnCreatePreferences();
try
{
addTab(getString(R.string.Search), R.drawable.searchtab, SearchTask.class);
addTab(getString(R.string.Bookmarks), R.drawable.blackheart1, Bookmarks.class);
addTab(getString(R.string.Latest), R.drawable.clock3, Latest.class);
addTab(getString(R.string.QAndA), R.drawable.pen, LatestFeedback.class);
getTabHost().setCurrentTab(0);
getTabHost().getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#4E4E9C"));
}
catch(Exception e)
{
Log.e(TAG, e.getMessage());
}
}
private void addTab(CharSequence label, int drawable_id, Class<?> c)
{
TabHost.TabSpec spec = getTabHost().newTabSpec("tab" + " "+ label);
spec.setIndicator(label, getResources().getDrawable(drawable_id));
spec.setContent(new Intent().setClass(this, c));
getTabHost().addTab(spec);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.tabs_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.tabs_menu_options_item:
//startActivityForResult(new Intent(this, Options.class) , 0);
return true;
default: return super.onOptionsItemSelected(item);
}
}
//private void initTabsAppearance(TabWidget tabWidget){
//
// for(int i=0; i<tabWidget.getChildCount(); i++)
// tabWidget.getChildAt(i).setBackgroundResource(R.drawable.searchtab);
//
//}
private void setOnCreatePreferences()
{
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
boolean mUseStartDialog = preferences.getBoolean("use_dialog", true);
if(mUseStartDialog)
{
if(!mHaveShownStartDialog)
{
mHaveShownStartDialog = true;
startActivity(new Intent(this, WelcomeDialog.class));
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<TabHost
android:id="@android:id/tabhost"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
</TabHost>