1

我的应用程序连续有 5 个“选项卡”(图像视图),我为所有这些选项卡创建了 onClick 方法,因为当您单击它们时,它们会将 URL 更改为我的 Web 视图。(只是解释一下,以便您了解应用程序的想法)我想更改我所在的“选项卡”(图像视图)上的背景(比如说 tab1),当您单击另一个选项卡(例如 tab4)时,背景tab1 消失并出现在 tab4 上。

代码:

public void onWelcome(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL1");
        ImageView imgV = (ImageView) findViewById(R.id.tab1);
        imgV.setImageDrawable(Drawable drawable); /*i do not understand this line, someone said this is how it's done*/
    }
    public void onProgram(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL2");
    }
    public void onNews(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL3");
    }
    public void onContact(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL4");
    }
    public void onPictures(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL5");
    }

正如我所说,我不明白如何使用这种方法.setImageDrawable(Drawable drawable);

我有一个名为img_selecteddrawable 的图像,我会在 XML 文件中写入 "android:background="@drawable/img_selected"

我如何在 onclick 方法中做同样的事情?当我点击另一个标签时如何摆脱它?

4

2 回答 2

1

这些方法的方便之处在于点击的视图已经通过了。所以你需要对视图做的任何事情都可以通过参数来完成。(这里是View V

public void onWelcome(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL1");
        V.setImageResource(R.drawable.img_selected); 
    }

这很简单。很像findViewById,该方法会将视图的图像资源设置id为传入的任何内容。要引用drawable代码中的特定内容,您可以使用上述内容。

于 2012-12-19T12:20:49.283 回答
0

您的主要活动与

TabHostActivity extends TabActivity implements OnTabChangeListener
{ 
     tabHost.setOnTabChangedListener(this);
     tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#FFA500")); // selected
     tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).getLayoutParams().height = 70;
}
于 2012-12-19T12:14:24.037 回答