Android 按钮未执行任何操作
我是新的编码,我无法找到导致问题的错误 不知道为什么当我点击一个按钮时,它没有执行任何操作。在onclicklistner中找不到任何错误。当我单击“选择”按钮时,它假定为我提供从库中选择图像的选项,而不是当我单击“选择”按钮时,它不会执行任何操作,也不会给出任何错误 Java代码:Android 按钮未执行任何操作,android,onclicklistener,Android,Onclicklistener,我是新的编码,我无法找到导致问题的错误 不知道为什么当我点击一个按钮时,它没有执行任何操作。在onclicklistner中找不到任何错误。当我单击“选择”按钮时,它假定为我提供从库中选择图像的选项,而不是当我单击“选择”按钮时,它不会执行任何操作,也不会给出任何错误 Java代码: package com.vshine.neuron; import android.content.Intent; import android.graphics.Bitmap; import android.n
package com.vshine.neuron;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.vshine.neuron.testing.R;
import org.w3c.dom.Text;
import java.io.IOException;
public class imageupload extends AppCompatActivity implements View.OnClickListener {
Button btn1 , btn2;
TextView tv;
EditText edt;
ImageView img;
private final static int IMG_REQUEST =1;
private Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imageupload);
btn1 = findViewById(R.id.btnupload);
btn2 = findViewById(R.id.btnchose);
//tv = findViewById(R.id.textview);
edt = findViewById(R.id.edit);
img = findViewById(R.id.imgview);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.btnchose:
break;
}
}
private void selectImage()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent,IMG_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==IMG_REQUEST && resultCode==RESULT_OK && data !=null)
{
Uri path = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),path);
img.setImageBitmap(bitmap);
img.setVisibility(View.VISIBLE);
edt.setVisibility(View.VISIBLE);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以下是布局的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.vshine.neuron.imageupload">
<!--<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="lang and lat"
android:textSize="20dp"
android:id="@+id/textview"/>-->
<ImageView
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/imgview"
android:visibility="gone"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter a Name"
android:visibility="gone"
android:id="@+id/edit"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Upload"
android:id="@+id/btnupload"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Choose image"
android:id="@+id/btnchose"/>
</LinearLayout>
您忘记调用
selectImage()
方法中的onClick()
方法
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.btnchose:
selectImage();
break;
}
}
试试这个
package com.vshine.neuron;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.vshine.neuron.testing.R;
import org.w3c.dom.Text;
import java.io.IOException;
public class imageupload extends AppCompatActivity implements View.OnClickListener {
Button btn1 , btn2;
TextView tv;
EditText edt;
ImageView img;
private final static int IMG_REQUEST =1;
private Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imageupload);
btn1 = findViewById(R.id.btnupload);
btn2 = findViewById(R.id.btnchose);
//tv = findViewById(R.id.textview);
edt = findViewById(R.id.edit);
img = findViewById(R.id.imgview);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.btnchose:
selectImage();
//do what you want
break;
}
}
private void selectImage()
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent,IMG_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==IMG_REQUEST && resultCode==RESULT_OK && data !=null)
{
Uri path = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),path);
img.setImageBitmap(bitmap);
img.setVisibility(View.VISIBLE);
edt.setVisibility(View.VISIBLE);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
将selectImage添加到单击的
onClick
方法中,如下所示:
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.btnchose:
selectImage();
break;
}
}
在代码中调用selectImage()
方法:
switch (v.getId())
{
case R.id.btnchose:
selectImage();
break;
}
看看这个。如果
Toast
正在工作,那么您已经正确地实现了侦听器
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.btnchose:
Toast.makeText(this, "Caleed or not", Toast.LENGTH_SHORT).show();
}
}
您的onClick方法需要调用selectImage方法。单击按钮时您什么也不做。这就是为什么什么都没有发生。你的onclick方法是空的事实上,你没有在那里写下你希望它在点击时做的事情。为什么它什么都没做?你忘了添加
代码>在selectImage()之后。
Thanku它起作用了,这是一个非常愚蠢的错误me@Umair如果它能解决您的问题,请投票并将其标记为“乐于解决的编码:”)在堆栈交换中,提问是一种特权,而不是权利。如果一个用户在问了合理数量的问题后,不能证明他们的贡献正在使网站变得更好(或者至少不会使网站变得更糟),那么他们将被阻止进一步提问,直到他们证明他们有能力做出积极的贡献。谢谢,这是一个非常愚蠢的错误。