Я разработал ListFragment
. На этапе itemLongClick()
начинается действие. onActivityResult()
, я снова установил адаптер, и новое текстовое представление создается динамически. onClick
каждого вида в элементе, Toast
shoud. Если я реализую onClick()
для каждого вида в адаптере, то itemLongClick()
не работает.ListView на клик-слушателе
Я приложил мой код ниже:
внутри ListFragment
:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
clickPosition = position;
Intent intent = new Intent(parent.getContext(),AddEventActivity.class);
startActivityForResult(intent, CREATE_EVENT);
return true;
}
});
}
внутри переходника getView()
:
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = (View)inflater.inflate(R.layout.event_listview_items, null);
TextView hour = (TextView)view.findViewById(R.id.hour);
LinearLayout layout = (LinearLayout)view.findViewById(R.id.layout);
hour.setText(hourAL.get(position));
if(eventAL.size() != 0){
for(int i=0;i<eventAL.size();i++){
if(eventAL.get(i).getPosition() == position){
for(int j =0;j<eventAL.get(i).eventName.size();j++){
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT,1.0f);
params.setMargins(3, 3, 3, 3);
final TextView txt = new TextView(parent.getContext());
txt.setId(++textid);
txt.setBackgroundColor(Color.GRAY);
txt.setLayoutParams(params);
txt.setText(eventAL.get(i).eventName.get(j));
layout.addView(txt);
txt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(parent.getContext(), txt.getId() + " clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
}
}
return view;
}
Пожалуйста кто наставит меня, как реализовать обе функции.
Мега, вы можете написать свой метод LongClick внутри метода getView(). При нажатии на convertView вы можете выполнять все, что захотите. –
Либо вы дали лизать своему ребенку предмет или весь предмет, оба не работают в вашем случае. –
try 'txt.getId(). ToString' in Toast ... –