2016-04-05 5 views
0

私はビューを含むアクティビティを持っています。 PlacingBoxView内部ビューからアクティビティにデータを渡す

public class SecondActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_second_act); 

     LinearLayout surface = (LinearLayout) findViewById(R.id.surfaceView1); 
     surface.addView(new PlacingBoxView(this)); 
     surface.setBackgroundColor(Color.BLACK); 

     if (ACTIONS_FINISHED){ 
      Log.d("TAG", "i made it!!"); 
     } 
    } 

私はいくつかのアクションを行い、それらが終了したら、私はtrueにACTIONS_FINISHEDと呼ばれるブール値を設定します。私の目標は、このブール値をtrueに設定してから、アクティビティでいくつかのアクションを自動的に行うことです。

私はall this possibilitiesを使用しようとしていましたが、情報を共有するだけです。たぶん私はonActivityResultを使うべきですが、私はすでにアクティビティ内にいます...

何か考えですか?前もって感謝します!

EDIT:ビューは、私はこのすべての可能性を使用しようとしてきたが、彼らはただあるAsyncTaskを実行し、いくつかの形状を描画しますが、ユーザがすべての

答えて

1

あなたPlacingBoxViewクラスのインタフェースを定義します。

あなた activityインタフェース実装で今
public class PlacingBoxView{ 
    private GetCallBack callback; 

    public PlacingBoxView(Context context){ 
     callback = (GetCallBack) context; 
    } 

    public void someMethodWhichSendsData(){ 
     callback.onMessageReceived(msg); 
    } 


    public interface GetCallBack{ 
     void onMessageReceived(Object msg); 
    } 
} 

public class SecondActivity extends AppCompatActivity implements PlacingBoxView.GetCallBack{ 

@Override 
public void onMessageReceived(Object msg){ 
    // you have got your msg here. 
} 


} 
+0

パーフェクトインタフェースを!私が 'PlacingBoxView'でアクティビティではなくビューを使用していることを考えれば、コンテキストコンテキストで'ηctivityactivity'を変更するだけでよいでしょう。助けてくれてありがとう;) – Alvaro

+0

@Alvaro私があなたがそれを受け入れることができるように、あなたが答えで要求した変更を行いました。 –

1

で画面に触れていません情報を共有する。たぶん私はonActivityResult使用する必要がありますが、私は

いいえ、onActivityResult()は異なる目的を持って...活動の中にすでにです。あなたはあなたのビューに通常のリスナーを実装してから、視聴者にあなたのアクティビティをアタッチします(つまり、あなたが行うのと同じ方法、すなわちOnClickListener)。そうすれば、あなたのビューは必要なときにコールバックして、そのような方法でアクティビティの一部をトリガすることができます。

関連する問題