1

XMLでいくつかのボタンを作成し、onClickでURLを開くメソッドがあります。このメソッドをボタンにリンクして、tap/onClickでメソッドを呼び出すにはどうすればよいですか。

メソッドコードは次のとおりです。

    public void openResource() {
     Uri uri = Uri.parse("http://librarywales.org");
     Intent intent = new Intent(Intent.ACTION_VIEW, uri);
     startActivity(intent);
}

そして、onCreateメソッドでXMLボタンのインスタンスを作成しました。

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button libButton = (Button) findViewById(R.id.button1);
}

そのメソッドをlibButtonインスタンスに追加するにはどうすればよいですか?

'vins'を使用して上記の問題を解決しましたが、このアプリケーションをAVDで実行してボタンをクリックすると、Androidメッセージボックスが表示されます。「残念ながら、ApplicationNameは機能しなくなりました。」

なぜこれなのか誰もが知っていますか?

ありがとう、ダン

4

5 に答える 5

1

ボタン宣言の後にこれを追加します

 libButton.setOnClickListener(new OnClickListener() 
    {           
        @Override
        public void onClick(View v) 
        {
            //open resource method call here...
        }
    });
于 2012-07-19T09:43:58.177 に答える
1

置く

android:onClick="openResource" 

xmlファイルのボタンのプロパティ。

何かのようなもの、

<Button
      android:id="@+id/button1"
      .
      .
      android:onClick="openResource"
      />

この機能はAndroid2.1(APIレベル7)以降でのみ利用可能であることに注意してください

于 2012-07-19T09:46:58.580 に答える
0

ページに多くのボタンがある場合は、button.setOnClickListener(this);を使用できます。

そして、メソッドuse Switchステートメント内のOnClick()メソッドをオーバーライドして、選択されているビューを照合します。これは、最適化された効率的な方法です。

于 2012-07-19T10:01:14.993 に答える
0
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button libButton = (Button) findViewById(R.id.button1);


libButton.setOnClickListener(new OnClickListener() 
{           
    @Override
    public void onClick(View v) 
    {
        if(v.getId()==R.id.button1){
           Uri uri = Uri.parse("http://librarywales.org");
           Intent intent = new Intent(Intent.ACTION_VIEW, uri);
           startActivity(intent);
        }
    }
});

}

于 2012-07-19T10:02:14.890 に答える
0
public class YourActivity extends Activity  implements OnClickListener {
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

   Button libButton =(Button) findViewById(R.id.button1);
    libButton.setOnClickListener(this);

    Button OtherButton =(Button) findViewById(R.id.button2);
    OtherButton.setOnClickListener(this);


   }

 @Override
  public void onClick(View v) {

    switch (v.getId()) {
    case R.id.button1: openResource();
                           break;
    case R.id.button2: //do something for second button...

     default : break;
         }
于 2012-07-19T10:23:41.517 に答える