Android 列表视图可通过重定向点击
Android List View Clickable with redirection
我在 android 应用程序的项目中,我创建了一个包含项目的列表视图,甚至是正常的。
用户可以在编辑文本中搜索项目,我很喜欢现在用户可以单击一个项目并被重定向到另一个 activity。
我可以做重定向,没问题。如果这样的复选框 item1 执行此操作等等,我如何才能在 table 中进行研究……那么我该怎么做呢?
对不起我的英语,我是法国人,美好的一天
这是代码:
public class MainActivity extends ActionBarActivity {
String[] items;
ArrayList<String> listItems;
ArrayAdapter<String>adapter;
ListView listView;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ListView)findViewById(R.id.listview);
editText=(EditText) findViewById(R.id.txtsearch);
initList();
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().equals("")) {
initList();
} else {
searchItem(s.toString());
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView,
View view, int position, long id) {
switch (position){
case 0:
listView.setBackgroundColor(17170459);
finish();
break;
case 1:
listView.setBackgroundColor(17170453);
finish();
break;
}
}
});
}
public void searchItem(String textToSearch){
for (String item:items){
if (!item.contains(textToSearch)){
listItems.remove(item);
}
}
adapter.notifyDataSetChanged();
}
public void initList(){
items= new String[]{"item2","item3","test"};
listItems = new ArrayList<>(Arrays.asList(items));
adapter = new ArrayAdapter<String>(this, R.layout.list_item,R.id.txtitem,listItems);
listView.setAdapter(adapter);
}
}
好的,首先很抱歉 post 给出了答案而不是评论,但我没有足够的声誉来 post 发表评论。
您想知道在 "itemActivity" 中您点击了上一个 activity 的项目,对吗?
然后启动一个新的 activity 多亏了 Intent,您可以使用 EXTRA 精确定位您点击的项目:
Intent i=new Intent(context,itemActivity.class);
i.putExtra("quelItem", position);
startActivity(i);
您可以像这样在 ItemActivity class 中找到位置:
Intent intent = getIntent();
int quelItem= intent.getIntExtra("quelItem");
我在 android 应用程序的项目中,我创建了一个包含项目的列表视图,甚至是正常的。 用户可以在编辑文本中搜索项目,我很喜欢现在用户可以单击一个项目并被重定向到另一个 activity。 我可以做重定向,没问题。如果这样的复选框 item1 执行此操作等等,我如何才能在 table 中进行研究……那么我该怎么做呢? 对不起我的英语,我是法国人,美好的一天
这是代码:
public class MainActivity extends ActionBarActivity {
String[] items;
ArrayList<String> listItems;
ArrayAdapter<String>adapter;
ListView listView;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ListView)findViewById(R.id.listview);
editText=(EditText) findViewById(R.id.txtsearch);
initList();
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().equals("")) {
initList();
} else {
searchItem(s.toString());
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView,
View view, int position, long id) {
switch (position){
case 0:
listView.setBackgroundColor(17170459);
finish();
break;
case 1:
listView.setBackgroundColor(17170453);
finish();
break;
}
}
});
}
public void searchItem(String textToSearch){
for (String item:items){
if (!item.contains(textToSearch)){
listItems.remove(item);
}
}
adapter.notifyDataSetChanged();
}
public void initList(){
items= new String[]{"item2","item3","test"};
listItems = new ArrayList<>(Arrays.asList(items));
adapter = new ArrayAdapter<String>(this, R.layout.list_item,R.id.txtitem,listItems);
listView.setAdapter(adapter);
}
}
好的,首先很抱歉 post 给出了答案而不是评论,但我没有足够的声誉来 post 发表评论。
您想知道在 "itemActivity" 中您点击了上一个 activity 的项目,对吗?
然后启动一个新的 activity 多亏了 Intent,您可以使用 EXTRA 精确定位您点击的项目:
Intent i=new Intent(context,itemActivity.class);
i.putExtra("quelItem", position);
startActivity(i);
您可以像这样在 ItemActivity class 中找到位置:
Intent intent = getIntent();
int quelItem= intent.getIntExtra("quelItem");