1

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

当您在没有 layout.xml 的活动中创建列表菜单时,有没有办法更改背景颜色和文本颜色?还是可能有其他问题?珍贵的帮助。谢谢!

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

编辑:添加了一些代码:

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

4 回答 4

1

在我看来,使用普通的 Activity 比使用 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);
于 2013-02-04T13:29:46.287 回答
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>
于 2013-02-04T13:34:41.307 回答
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

于 2016-01-30T06:04:20.150 回答
-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);
    }
});

第二。使用Adapter您的ListView然后在GetView每个项目上添加 clicklistener

我认为第一种方法更好

于 2013-02-04T13:20:26.157 回答