В дополнение к ответу duncansmart также дополнительные методы могут использоваться на Платформе 2.0. Просто добавьте ExtensionAttribute
класс под Системой. Время выполнения. Пространство имен CompilerServices и Вы можете использовать дополнительные методы (только с C# 3.0, конечно).
namespace System.Runtime.CompilerServices
{
public class ExtensionAttribute : Attribute
{
}
}
этот код показывает, как установить значок в хосте вкладок, а также установить намерение
TabHost tabHost = getTabHost();
// Tab for Photos
TabSpec photospec = tabHost.newTabSpec("Photos");
// setting Title and Icon for the Tab
photospec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_photos_tab));
Intent photosIntent = new Intent(this, PhotosActivity.class);
photospec.setContent(photosIntent);
// Tab for Songs
TabSpec songspec = tabHost.newTabSpec("Songs");
songspec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_songs_tab));
Intent songsIntent = new Intent(this, SongsActivity.class);
songspec.setContent(songsIntent);
// Tab for Videos
TabSpec videospec = tabHost.newTabSpec("Videos");
videospec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_videos_tab));
Intent videosIntent = new Intent(this, VideosActivity.class);
videospec.setContent(videosIntent);
// Adding all TabSpec to TabHost
tabHost.addTab(photospec); // Adding photos tab
tabHost.addTab(songspec); // Adding songs tab
tabHost.addTab(videospec); // Adding videos tab
Создайте XML-файл селектора tabicon.xml и вставьте этот код
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/tab_enbled" android:state_selected="true"/>
<item android:drawable="@drawable/tab_default" android:state_selected="false"/>
</selector>
. Теперь перейдите в TabActivity и введите этот код
TabSpec MyTab = tabhost.newTabSpec("MyTab");
MyTab.setIndicator("", getResources().getDrawable(R.drawable.tabicon));
//note:if you give some text in setIndicator sometimes the icon will not be showed.
Intent tabIntent = new Intent(this, TabOne.class);
TWTTab.setContent(tabIntent);
. Прежде всего, у вас должно быть два изображения, потому что вы хотите изменить одно изображение на другое, поэтому вам нужны оба изображения, и вы должны поместить их в три папки для рисования.
В моем примере у меня есть изображения, один из которых называется icon1.png и icon2.png .
После этого создайте xml-файл внутри папок для рисования (один и тот же файл для всех папок для рисования). Это файл:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use icon1 -->
<item android:drawable="@drawable/icon1"
android:state_selected="true" />
<!-- When not selected, use icon2-->
<item android:drawable="@drawable/icon2" />
</selector>
Вы можете выбрать, какое изображение будет отображаться при выборе вкладки. В этом случае появится значок icon1 , потому что мы объявили его в теге, где state_selected = true .
Итак, теперь у вас есть два изображения и файл xml внутри трех папок для рисования. Хорошо!
Теперь, в классе, который вы объявляете вкладки, добавьте эту строку для каждой вкладки, которую вы хотите добавить.
tabHost.addTab(tabHost
.newTabSpec("one")
.setIndicator("The Tab",
res.getDrawable(R.drawable.yourxmlfile))
.setContent(new Intent(this, YourClass.class)));
Помните, что R.drawable.yourxmlfile соответствует XML-файлу, который вы создали в папках для рисования.
Вот и все! Надеюсь, это поможет вам.
@Suchismita лучше использовать TextView вместо TabActivity. Я столкнулся со следующими проблемами в табачной деятельности
Я не мог начать другое действие в той же вкладке, это главная проблема, с которой я столкнулся
Следующая настройка вид вкладки, я не смог изменить разделитель drawable.
Далее, используя TextView, я обнаружил, что очень легко обрабатывать события и поток операций, здесь у вас есть полный контроль над поведением приложения и Также вы можете настроить внешний вид вкладки так, как вы хотите.
Вас интересует, как реализовать?