java - 如何使用 xml 或 java 设置 gridview 单元格的背景颜色,但它不是自定义的

标签 java android gridview

public class Rajesh extends Activity {

    ListView ap;

    ListView paypalList;
    GridView gridBox;
 DisplayAppListArrayAdapter displayAppListArrayAdapter;

    Button turnOverButton;
    String[] solutionArray = { "$0.001", "$0.010", "$0.005", "$0.003", "$0.002", "$0.008", "$0.001","$0.001", "$0.001" };
    @Override
    protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    redeemTextUpper = new String[] {

                getString(R.string.get_for_500),
                getString(R.string.get_for_1000)
                };


        pics = new Integer[] {
                R.drawable.paypal, R.drawable.paypal,

        };

        appList=(ListView)findViewById(R.id.appList);
        paypalList=(ListView)findViewById(R.id.list_paypal);
        gridBox=(GridView)findViewById(R.id.gridFit);        
        turnOverButton=(Button)findViewById(R.id.turnOver)
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "YOU want turnOver!", Toast.LENGTH_LONG).show();
            }
        });

        // gridBox.setAdapter(new TextAdapter(this));
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, solutionArray);
            gridBox.setAdapter(adapter);
          //  gridBox.getChildAt(0).setBackgroundColor(Color.parseColor("#18A608"));
            gridBox.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
                        gridBox.getChildAt(position).setBackgroundColor(Color.parseColor("#18A608"));

                        Toast.makeText(MainActivity.this, "You Clicked at "

+solutionArray[+ position], Toast.LENGTH_SHORT).show();

                    }
                });
          //  gridBox.getChildAt(9).setBackgroundColor(Color.parseColor("#18A608"));
            displayAppListArrayAdapter = new DisplayAppListArrayAdapter(
                     getApplicationContext(), pics, redeemTextUpper ,null);

             paypalList.setAdapter(displayAppListArrayAdapter);





     }



    }

当我使用此代码时,背景颜色已更改,但当我单击但我想更改 oncreate() 时。

最佳答案

有两种方法可以做到这一点。

1) 通过扩展 ArrayAdapter 创建自定义 ArrayAdapter

new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, solutionArray) { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);

        int color = 0x00FFFFFF; // Transparent
        if (someCondition) { 
            color = 0xFF0000FF; // Opaque Blue
        } 

        view.setBackgroundColor(color);

        return view;
    } 
}; 

2) 上面的方法很简单。只需创建自定义 Textview 布局并将该布局替换为 android.R.layout.simple_list_item_1 即可,这非常简单。 喜欢:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
    android:paddingRight="?android:attr/listPreferredItemPaddingRight"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:background="#18A608" />

如果只是想改变颜色,我建议采用第二种方法。

关于java - 如何使用 xml 或 java 设置 gridview 单元格的背景颜色,但它不是自定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846999/

相关文章:

java - 检查 int 是否为素数 Java

c# - 在 WPF MVVM 的 GridView 中动态创建列

c# - 以编程方式更改 gridview 标题行的高度

java - 如何使用maven将webapp打包成jar

java - 如何在长链方法调用中共享内存?

java - 如何通过代码打开 Vaadin ComboBox?

android - Android SDK 的位置尚未在 64 位 Windows 的首选项中设置

java - 如果今天是星期日,则获取下周的日期

AndroidPlot自定义关节

javascript - 使用 JQuery 获取 Gridview 内的文本框值