【发布时间】:2015-01-25 01:39:51
【问题描述】:
我有一个在标签结构中设置的片段
其中一个片段,我有一个垂直列表视图
另外在每个垂直的listview项目中,我都有一个水平的listviews。
问题是.. 当我在水平适配器中声明一个意图广播器时
并且还在主片段中声明了广播侦听器,但侦听器似乎没有在听意图
请帮帮我...我是韩国学生..
这是我的简要代码
[在水平适配器中]
...
public View getView(int position, View convertView, ViewGroup parent) {
View retval = convertView;
if(convertView==null) // initialize
{
retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.part_item, null);
TextView tv_workout = (TextView)retval.findViewById(R.id.txt_work);
ImageView iv_workout = (ImageView)retval.findViewById(R.id.pic_work);
tv_workout.setText(getItem(rowpos).get(position).getPartname());
iv_workout.setImageResource(getItem(rowpos).get(position).getImagesrc());
iv_workout.setTag(position);
iv_workout.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if((int)v.getTag() == getCount()-1)
{
PartContent temp_part = new PartContent("part", R.drawable.plus);
PartContent temp_base_part = new PartContent("workout", R.drawable.dumb);
totallist.get(rowpos).set(getCount()-1, temp_base_part);
totallist.get(rowpos).add(temp_part);
Intent intent = new Intent();
intent.setClass(getContext(), FragRoutine.class);
intent.putExtra("row", rowpos);
intent.putExtra("col", (int) v.getTag());
getContext().sendBroadcast(intent);
//Toast.makeText(getContext(), "one more hour!" , Toast.LENGTH_SHORT).show();
getView((int)v.getTag(), (View)v.getParent(), (ViewGroup)v.getParent().getParent());
//FragRoutine fr = new FragRoutine();
//fr.TotalList.get(rowpos).set(getCount() - 1, temp_base_part);
//fr.TotalList.get(rowpos).add(temp_part);
}
return true;
}
});
}
else
{
TextView tv_workout = (TextView)convertView.findViewById(R.id.txt_work);
ImageView iv_workout = (ImageView)convertView.findViewById(R.id.pic_work);
tv_workout.setText(getItem(rowpos).get(position).getPartname());
iv_workout.setImageResource(getItem(rowpos).get(position).getImagesrc());
iv_workout.setTag(position);
iv_workout.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if((int)v.getTag() == getCount() - 1)
{
PartContent temp_part = new PartContent("part", R.drawable.plus);
PartContent temp_base_part = new PartContent("part", R.drawable.dumb);
totallist.get(rowpos).set(getCount()-1, temp_base_part);
totallist.get(rowpos).add(temp_part);
Intent intent = new Intent();
//intent.setClass(getContext(), FragRoutine.class);
intent.putExtra("row", rowpos);
intent.putExtra("col", (int) v.getTag());
getContext().sendBroadcast(intent);
Toast.makeText(getContext(), "last clicked" , Toast.LENGTH_SHORT).show();
getView((int)v.getTag(), (View)v.getParent(), (ViewGroup)v.getParent().getParent());
//FragRoutine fr = new FragRoutine();
//fr.TotalList.get(rowpos).set(getCount() - 1, temp_base_part);
//fr.TotalList.get(rowpos).add(temp_part);
}
return true;
}
});
}
return retval;
}
[广播听众]
...
public class FragRoutine extends Fragment
{
private BroadcastReceiver mReceiver;
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate (R.layout.schedule_routine, container,false);
return view;
}
public void onStart() {
super.onStart();
initializeViewObject();
}
private void initializeViewObject(){
IntentFilter intentFilter = new IntentFilter();
mReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(context, "listen!", Toast.LENGTH_LONG).show();
String msg_me = intent.getStringExtra("row");
}
};
getActivity().registerReceiver(mReceiver, intentFilter);
...
【问题讨论】:
标签: android android-intent broadcastreceiver fragment