2013-07-14 44 views
1

我有一个有自定义视图的活动。我怎样才能从视图完成活动

我要补充活动结果:

public class ActView extends Activity implements OnClickListener { 
<...code...> 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    <...code...> 
    layout = (LinearLayout) findViewById(R.id.chart_container); 
     timelineview = new VDrawTimeLine(this,contentFull); 
     timelineview.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
     timelineview.setBackgroundColor(0xffffffff); 
     timelineview.setVisibility(View.VISIBLE); 

     layout.addView(timelineview); 

    <...code...> 
    } 
} 

视图类:

public class VDrawTimeLine extends View implements OnTouchListener{ 
<...code...> 
public VDrawTimeLine(Context context, ArrayList<_MainData> contentFull) { 
     super(context); 
     this.con = context; 
     this.content = contentFull; 
     <...code...> 
    } 
} 
@Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // TODO Auto-generated method stub 
     finishFunction();//I need here finish event this activity result for ActView Activity. 
     return true; 
    } 

finishFunction - 我有什么写在这里与结果的父活动完成ActView?

我需要事端这样的:

Intent intent = new Intent(); 
    intent.putExtra(dataname, value); 
    setResult(RESULT_OK,intent); 
    finish(); 

回答

6

由于Context您使用的是Activitys context, you can cast the view的上下文到活动并调用finish()上面。

例如:

private void finishFunction() { 
    Activity activity = (Activity)getContext(); 
    activity.finish(); 
} 

也许这是不是从设计的角度来看

+0

感谢的最佳选择。它给了我我想要的。可能是一些复杂的,但它的作品。 – Vyacheslav