Намерение к другому действию при поиске по клику
Я искал различные способы, но я не могу понять, как заставить эту вещь работать.
Я просто хочу, когда бы textview
в expandablelistview
щелкает, чтобы перейти в другой activity
, Но я хочу указать клики пользователей на их собственные действия. Как я могу это сделать?
Короче говоря, все, что я хочу знать, это как мне справиться с onclick
из моего textview
?
Это код, в который я должен поместить свое намерение:
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ChildRow childRow = (ChildRow) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.child_row, null);
}
ImageView childIcon = (ImageView) convertView.findViewById(R.id.child_icon);
childIcon.setImageResource(childRow.getIcon());
final TextView childText = (TextView) convertView.findViewById(R.id.child_text);
childText.setText(childRow.getText().trim());
final View finalConvertView = convertView;
childText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Codes for intent goes in here.
Toast.makeText(finalConvertView.getContext()
, childText.getText()
, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
Помощь очень нужна и ценится, пожалуйста, помогите мне. Спасибо.
2 ответа
Допустим, вы используете arraylist
предметов. Вы можете получить доступ к элементам списка, используя childposition
, все, что вам нужно сделать, это передать этот элемент с намерением взглянуть на следующий код.
private List<ItemDetail> itemList = new ArrayList<ItemDetail>();
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.child_row, null);
}
final TextView childText = (TextView) convertView.findViewById(R.id.child_text);
childText.setText(itemList.get(childPosition));
final View finalConvertView = convertView;
childText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Codes for intent goes in here.
Intent intent = new Intent(this,YourActivity.class);
intent.putExtra("datakey", itemList.get(childPosition));
startActivity(intent);
}
});
return convertView;
}
Код ниже должен быть внутри Activity
учебный класс. Сначала вы должны создать намерение для конкретной деятельности, на которую вы хотели бы пойти. Призыв к putExtra()
необязательно; Вы можете использовать его для передачи данных в новое действие. Затем вам нужно позвонить startActivity()
и передать это намерение.
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra(NewActivity.DATA_KEY, data);
startActivity(intent);