2011-11-15 4 views
1

Androidのビューにxとyの値を格納するonTouchEventがあります。私のアクティビティでは、2つのTextViewを最初に0に設定しましたが、Viewをクリックするたびにそれらを更新したいと思います。AndroidでTextViewのテキストを更新するにはどうすればよいですか?

誰かがこれを行う方法を説明できますか?

編集

My活動ディスプレイ3つの異なるビューとビューの一つは、それがクリックされた場合は、xとyの位置は何であったかを確認するonTouchEventを持っています。

public class MyActivity extend Activity { 
    //LinearLayouts created to hold the Views 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //add buttons 
     for(Button b : myButtons) { 
      buttonLayout.addView(b); 
     } 

     clickLayout.addView(clickView); //ClickView is where I use the onTouchEvent and want to get the values from 

     for(TextView tv : myTextViews) { 
      //This is where I would like to set the text 
      //It needs to update every time the ClickView's onTouchEvent happens 
      textLayout.addView(tv); 
     } 
    } 
} 

私のClickViewソースが必要な場合はお知らせください。私はそこに投げ捨てます。ただし、XとYを取得するだけです。

Dan Sが言いました(textview渡し)というオプションはオプションですが、私のアクティビティでClickViewのonTouchEventを取得できる方法があることを期待していました。

上記の代替手段がない場合は、前述のオプションが機能するため、これを解決済みとしてマークします。ちょうど私がそれを使用していたやり方を少し複雑にします。 onTouchEventで

答えて

1

次のようなものを行い、この擬似コード

textViewX.setText(String.valueOf(motionEvent.getX())); 
textViewY.setText(String.valueOf(motionEvent.getY())); 
+0

が返信いただきありがとうございますが、それは私が求めていた正確な理由だった、TextViewsがありますOnTouchEventのあるビューではなく、アクティビティで作成されます。そのビューにTextViewを作成してアクティビティに渡す必要がありますか? – StartingGroovy

+0

アクティビティでonTouchEventを使用するか、TextViewsをカスタムタッチ可能ウィジェットに渡すことができます。 –

+2

@StartingGroovy:Danの提案を試してみることもできますが、ビューの 'getContext()'メソッドを使用して、(MyActivity)getContext()などのアクティビティクラスにキャストしてください。textViewX - TextViewsは 'public'である必要があります。 – Squonk

1

を使用して...

public class MyActivity extends Activity 
    implements View.OnTouchListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     ... 

     // Set clickView's OnTouchListener to be handled 
     // by the onTouch(...) method of this Activity 
     clickView.setOnTouchListener(this); 
    } 

    @Override 
    public onTouch(View v, MotionEvent event) { 
     // The View parameter v will be the View that 
     // was touched if you have more than one to handle 
    } 
} 
+0

だから、Dan Sの言葉に切り替えることを提案していますか? – StartingGroovy

+0

はい、あなたが示唆していたこととそのやり方について少し混乱しているように見えましたが、私はあなたに例を挙げたいと思いました。 – Squonk

+0

この例をありがとうございます。ダンは以前にそれを言いましたので、あなたのコメント/投稿のそれぞれが役に立ちましたので、私は先に進み、正しいとマークしていきます。問題がある場合は、別のコメントを残します。あなたの時間をありがとうMisterSquonk – StartingGroovy

関連する問題