ListView. Как сделать, что б при нажатии менлся цвет пункта?
Добавлено: 25 фев 2015, 10:50
Здравствуйте, как можно сделать, что б при нажатии (нажал - отпустил, не зажимал) на пункт списка, менялся его фон?
P.S. Я нуб.
Парился, парился, потом получилось "разукрашивать" весь список, далее получилось красить нужный пункт списка, но он закрашивался да же если нажимать на другие пункты.
Ещё я понял, что да же если получится его покрасить, то потом нужно как то сохранить цветной фон для этого пункта при прокрутке, а как реализовать этот момент?
[syntax=java]package com.comcom.chernovik;
import android.content.Intent;
import android.graphics.Color;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
String[] name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ListView lvMain = (ListView) findViewById(R.id.lvMain);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.name,
R.layout.button_list_item);
lvMain.setAdapter(adapter);
lvMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked, int position,
long id) {
lvMain.getChildAt(2).setBackgroundColor(Color.YELLOW);
}
});
}[/syntax]
P.S. Я нуб.
Парился, парился, потом получилось "разукрашивать" весь список, далее получилось красить нужный пункт списка, но он закрашивался да же если нажимать на другие пункты.
Ещё я понял, что да же если получится его покрасить, то потом нужно как то сохранить цветной фон для этого пункта при прокрутке, а как реализовать этот момент?
[syntax=java]package com.comcom.chernovik;
import android.content.Intent;
import android.graphics.Color;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
String[] name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ListView lvMain = (ListView) findViewById(R.id.lvMain);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.name,
R.layout.button_list_item);
lvMain.setAdapter(adapter);
lvMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked, int position,
long id) {
lvMain.getChildAt(2).setBackgroundColor(Color.YELLOW);
}
});
}[/syntax]