【问题标题】:Button not doing anything按钮不做任何事情
【发布时间】:2017-12-31 05:58:05
【问题描述】:

Android Studio 中没有错误消息。 “选择图像按钮”在单击时没有响应。

我查看了类似的问题,但没有一个是针对我的问题的,并且没有帮助

xml 文件:

 <de.hdodenhof.circleimageview.CircleImageView
        android:layout_width="85dp"
        android:layout_height="85dp"
        android:src="@drawable/noprofileimg"
        android:id="@+id/profilepic"
        android:layout_marginBottom="37dp"
        android:layout_alignBottom="@+id/imageView"
        android:layout_centerHorizontal="true" />
<Button
    android:id="@+id/pick_image_button"
    android:layout_width="80dp"
    android:layout_height="23dp"
    android:text="Pick Image"
    android:textSize="12dp"
    android:padding="0dp"
    android:background="@color/Gray"
    android:layout_marginBottom="13dp"
    android:layout_above="@+id/linearLayout"
    android:layout_centerHorizontal="true"
    android:onClick="onClick"
    />

活动文件,

  public class uploadprofileimg extends ActionBarActivity{


private static final int PICK_IMAGE = 100;
private ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile);

    imageView = (ImageView) findViewById(R.id.profilepic);

    Button pickImageButton = (Button) findViewById(R.id.pick_image_button);
    pickImageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openGallery();
        }
    });
}

private void openGallery() {
    Intent gallery =
            new Intent(Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
    startActivityForResult(gallery, PICK_IMAGE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
        Uri imageUri = data.getData();
        imageView.setImageURI(imageUri);
    }
}

}

这是我的日志:

07-25 11:51:36.776 28107-28107/com.liamthedeveloper.foodiez E/BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: Didn't find class "com.qualcomm.qti.Performance" on path: DexPathList[[],nativeLibraryDirectories=[/system/lib64, /vendor/lib64]] 07-25 11:51:36.776 28107-28107/com.liamthedeveloper.foodiez V/BoostFramework: BoostFramework() : mPerf = null 07-25 11:51:37.080 28107-28107/com.liamthedeveloper.foodiez D/ViewRootImpl@435aa35[ProfileActivity]: ViewPostImeInputStage processPointer

【问题讨论】:

  • 请添加您的 logcat。
  • @Akriti 07-25 11:51:36.776 28107-28107/com.liamthedeveloper.foodiez E/BoostFramework: BoostFramework() : Exception_1 = java.lang.ClassNotFoundException: 找不到类“com .qualcomm.qti.Performance”在路径上:DexPathList[[],nativeLibraryDirectories=[/system/lib64, /vendor/lib64]] 07-25 11:51:36.776 28107-28107/com.liamthedeveloper.foodiez V/BoostFramework: BoostFramework() : mPerf = null 07-25 11:51:37.080 28107-28107/com.liamthedeveloper.foodiez D/ViewRootImpl@435aa35[ProfileActivity]: ViewPostImeInputStage processPointer 1

标签: java android xml button


【解决方案1】:

从 xml 中的 Button 标记中删除 android:onClick="onClick"。

【讨论】:

  • 是的,删除那个... onClickListener 已经由(java)代码完成!
【解决方案2】:

对于同一活动,您同时拥有 onclicklistener 和 onclick 属性。您可以简单地删除 onclick 或将“onclick”更改为您已将方法命名为的 opengallery

【讨论】:

    【解决方案3】:

    你在你的java代码中使用了pickImageButton.setOnClickListener(new View.OnClickListener(),所以你应该从xml文件中删除on click属性,因为通过使用android:onClick="onClick"你直接从你的java代码中调用一个方法,没有用户定义的函数命名就像点击一样。

    【讨论】:

    • 欢迎来到 SO。 SO 有一个很棒的功能,可以使代码在文本中看起来不同,从而变得更具可读性。基本上,您可以从开头和结尾用三个 ` 字符包围文本的代码部分。然后它看起来像这样pickImageButton.setOnClickListener(new View.OnClickListener() 。 android:onClick="onClick" 也是如此。祝你好运,继续提供这些答案!
    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多