2013-02-04 42 views
1

我正在使用新波士顿视频教程中的listmenu构建一个简单的应用程序 http://www.youtube.com/watch?v=zjHYyAJQ7Vw&list=EC2F07DBCDCC01493A而在该课程中,您将创建此列表菜单,而不需要任何布局。这几乎都适用于我,菜单处于活动状态,但我看不到菜单中的任何文字。当我按下其中一个选项时,文本就可见。当我在AVD或手机上运行应用程序时,背景始终是白色的。更改列表菜单中的背景颜色

当您在没有layout.xml的活动中创建listmenu时,是否有办法更改背景颜色和文本的颜色?或者可能有其他的东西是错的? Preciate索姆帮助。谢谢!

编辑:我不确定它是活动的背景颜色还是菜单中的按钮?它全白,文本也是白色,但菜单中的选项之间有灰线。我不确定下面的答案会起作用,因为我不使用任何带有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(); 
    } 
} 

}

+0

它很容易在xml上进行更改,您可以使用'selector' xml,非常容易 –

回答

-1

你可以改变背景的列表视图上的Java这样

yourlistview.setBackgroundColor(color) 

对于点击每个项目在你ListView你可以以两种方式更改BG

Fi RST。在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每个项目

我认为第一种方式是更好的

+0

这真的会起作用吗?!请看我的编辑! –

+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

尝试这样的应用选择。它会帮助你改变背景颜色。

<?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> 
+1

这将帮助你改变你点击的项目的背景颜色。 –

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中