0

ユーザーが画像をクリックして、クリックされた同じビューでアップロードする画像を選択できる機能を開発しようとしています。ImageView を次のように定義します。

    <ImageView
     style = "@style/DefaultButton"
     android:id="@+id/choose_img"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="46dp"
     android:clickable="True"
     android:adjustViewBounds="true"
     android:onClick="chooseImg"
     android:contentDescription="@string/description_logo"
     android:src="@drawable/user2" />

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

    public void chooseImg(View view){
        Toast.makeText(this, "Choose Image from Gallery", Toast.LENGTH_SHORT).show();
        Intent chimg = new Intent(Intent.ACTION_GET_CONTENT);
        chimg.setType("image/*");
        startActivityForResult(chimg,CHOOSE_IMAGE_REQUEST_CODE);
    }

メソッドは呼び出されていません。理由を知るために私を助けてください。ありがとう :)。

4

2 に答える 2

2

によって呼び出されるandroid:onClickメソッドは、実行するメソッドと一致する必要があります...ただし、 onClick のメソッドは でcaptureImgあり、アクティビティのメソッド名は ですchooseImg。これらを同じメソッド名に変更すると、問題が解決するはずです。私のコメントも参照してください。

于 2012-08-31T18:25:54.757 に答える
1

キャスパーは正しいです。Activity 自体に View.OnClickListener インターフェイスを実装させることができることを付け加えておきます。

onClick(View v) { if (v.getId() == (ImageView の ID)) { captureImg(); }

}

または匿名の内部クラスとして。

于 2012-08-31T18:29:19.357 に答える