android - 为列表中的元素指定不同的颜色

标签 android android-intent android-activity

我使用列表作为侧边栏,并根据列表项在主窗口中启动不同的 Activity 。 现在我如何更改布局或代码中特定列表项的颜色。所以每当我加载新 Activity 时,我希望特定列表项具有不同的颜色。 我无法使用事件单击此处来触发它。

这是我的代码 -

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout6);
        listView = (ListView) findViewById(R.id.listView);

        String[] values = getResources().getStringArray(R.array.menuList);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);


        // Assign adapter to ListView
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {

                // ListView Clicked item index
                int itemPosition     = position;

                // ListView Clicked item value
                String  itemValue    = (String) listView.getItemAtPosition(position);


                // Show Alert

                switch( position )
                {
                    case 0:  Intent newActivity = new Intent(Activity6.this,MainActivity.class);
                        startActivity(newActivity);
                        break;

                    case 1:  Intent newActivity1 = new Intent(Activity6.this,Activity2.class);
                        startActivity(newActivity1);
                        break;
                    case 2:  Intent newActivity2 = new Intent(Activity6.this,Activity3.class);
                        startActivity(newActivity2);
                        break;
                    case 3:  Intent newActivity3 = new Intent(Activity6.this,Activity4.class);
                        startActivity(newActivity3);
                        break;
                    case 4:  Intent newActivity4 = new Intent(Activity6.this,Activity5.class);
                        startActivity(newActivity4);
                        break;

                }
                Toast.makeText(getApplicationContext(),
                        "Position :" + itemPosition + "  ListItem : " + itemValue, Toast.LENGTH_LONG)
                        .show();

            }

        });

    }

最佳答案

您必须创建一个 CustomAdapter 并在 getView 重写方法上自定义 row_item。 xml 文件中没有办法。 创建 CustomAdapter 取决于您如何为 ListView 设置适配器。 粘贴您要设置适配器的代码部分。

关于android - 为列表中的元素指定不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038709/

相关文章:

android - Activity 是由同一类、同一 Activity 的 Intent 创建的吗?

java - 通过 intent 向 Viber 和 Line 等应用程序共享视频会引发错误

android - 如何为包含选项卡 Activity 的 TabActivity 设置结果()

android - 图片下载 : memory leak using LazyList

android - 错误 :(1, 0) 未找到 ID 为 'com.android.application' 的插件

Android:DP中的启动器图标宽度和高度

java - Android取消线程

android - 在另一个应用程序中捕获文本选择

android - 当 Activity 在 android 中加载 'N' 次时执行某些操作

android - 如何在弹出窗口中打开 Activity ?