更改列表菜单中的背景颜色

时间:2013-02-04 13:16:34

标签: android

我正在使用新波士顿的视频教程中的listmenu构建一个简单的应用程序 http://www.youtube.com/watch?v=zjHYyAJQ7Vw&list=EC2F07DBCDCC01493A在该课程中,您可以创建此列表菜单而无需任何布局。这一切都对我有用,差不多,菜单在活动中,但我看不到菜单中的任何文字。当我按下其中一个menues选项时,文本就可见了。当我在AVD或手机上运行应用程序时,背景始终为白色。

在没有layout.xml的活动中创建列表菜单时,有没有办法更改文本的背景颜色和颜色?或者还有其他错误吗?精确的帮助。谢谢!

编辑:我不确定它是活动的背景颜色还是菜单中的按钮?它全是白色,文本也是白色,但菜单中的选项之间有一条灰线。我不确定下面的答案是否有效,因为我没有使用任何带有listview的xml布局文件?也许最好用x​​ml lyaout文件来做呢?预备一些进一步的帮助!

编辑:添加了一些代码:

public class Menu extends ListActivity{

String classes[] = {"MainActivity", "Example1", "Example2"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setListAdapter(new ArrayAdapter<String>(Menu.this,android.R.layout.simple_dropdown_item_1line, classes));
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);
    String selectedClass = classes[position];
    try{
    Class ourClass = Class.forName("com.test.theNewBoston." + selectedClass);
    Intent ourIntent = new Intent(Menu.this, ourClass);
    startActivity(ourIntent);
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }
}

}

4 个答案:

答案 0 :(得分:1)

在我看来,使用普通的活动比使用ListActivity更好。

ListView list  = (ListView)findViewById(R.id.listView1);

list.setOnItemClickListener(new OnItemClickListener() {
    @Override
    //ListView parent, View v, int position, long id 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        arg1.setBackgroundColor(Color.RED);
    }
});

你可以像这样设置背景颜色:

list.setBackgroundColor(Color.BLUE);

答案 1 :(得分:1)

通过应用选择器尝试这样。它可以帮助您改变背景颜色。

 <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">

        <item android:drawable="@color/pink" android:state_pressed="true"/>

        <item android:drawable="@android:color/transparent"/>

    </selector>

答案 2 :(得分:0)

public class HttpEx extends ListActivity {

    String options[] = {"BasicConnect","ConnectToSql","TBA","TBA",
                        "TBA","TBA"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, options));
        getListView().setBackgroundColor(Color.BLACK); //add this code into the onCreate
    }

这就是我为ListActivity更改背景颜色的方法。 。getListView()setBackgroundColor(Color.BLACK); //将此代码添加到onCreate

答案 3 :(得分:-1)

您可以像这样更改java上listview的背景

yourlistview.setBackgroundColor(color)

要点击ListView中的每个项目,您可以通过两种方式更改BG

首先。将item click listener添加到您的ListView列表中:

list.setOnItemClickListener(new OnItemClickListener() {
    @Override
    //ListView parent, View v, int position, long id 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        arg1.setBackgroundColor(Color.Black);
    }
});

二。使用AdapterListView,然后在每个项目的GetView上添加clicklistener

我认为第一种方式更好