gpt4 book ai didi

java - 无法解释的 Android Intent 行为

转载 作者:行者123 更新时间:2023-12-01 11:19:22 25 4
gpt4 key购买 nike

我正在向我的项目添加相机扫描设施。我使用以下 github https://github.com/jhansireddy/AndroidScannerDemo项目

我试图从我编写的适配器中设置的 onclicklistener 中调用它

这是我的 onclicklistener

    imgCamera.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View view) {

// Intent intent = new Intent(context, ScanActivity.class);
// ((Activity) context).startActivity(intent);

Intent intent =new Intent(context, ScanAdaptor.class);

}
}

我希望它调用我编写的使用 startactivityforresult 的类:

public class ScanAdaptor extends Activity {

private Context context;

private static final int REQUEST_CODE = 99;

String ba1;
public String URL = "http:";

@Override
public void onCreate(Bundle savedInstanceState) {


int REQUEST_CODE = 99;
int preference = ScanConstants.OPEN_CAMERA;
Intent intent = new Intent(this, ScanActivity.class);
intent.putExtra(ScanConstants.OPEN_INTENT_PREFERENCE, preference);
startActivityForResult(intent, REQUEST_CODE);

context = this;


}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri uri = data.getExtras().getParcelable(ScanConstants.SCANNED_RESULT);
Bitmap bitmap = null;
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
getContentResolver().delete(uri, null, null);
// scannedImageView.setImageBitmap(bitmap);
upload(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}

private Bitmap convertByteArrayToBitmap(byte[] data) {
return BitmapFactory.decodeByteArray(data, 0, data.length);
}


private void upload(Bitmap bm) {
// Image location URL
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 90, bao);
byte[] ba = bao.toByteArray();

int flag = 0;


ba1 = Base64.encodeToString(ba, flag);

Log.e("base64", "-----" + ba1);

// Upload image to server
new uploadToServer().execute();

}

public class uploadToServer extends AsyncTask<Void, Void, String> {



private ProgressDialog pd = new ProgressDialog(((Activity) context));
protected void onPreExecute() {
super.onPreExecute();
pd.setMessage("Wait image uploading!");
pd.show();
}

@Override
protected String doInBackground(Void... params) {

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("base64", ba1));
nameValuePairs.add(new BasicNameValuePair("ImageName", System.currentTimeMillis() + ".jpg"));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
String st = EntityUtils.toString(response.getEntity());
Log.v("log_tag", "In the try Loop" + st);

} catch (Exception e) {
Log.v("log_tag", "Error in http connection " + e.toString());
}
return "Success";

}

protected void onPostExecute(String result) {
super.onPostExecute(result);
pd.hide();
pd.dismiss();

Intent myIntent = new Intent(((Activity) context), MainActivity.class);
myIntent.putExtra("dir", "BS"); //Optional parameters
((Activity) context).startActivity(myIntent);
}
}
}

当这是配置时,按下按钮时不会发生任何事情。

这让我发疯,请帮忙

最佳答案

您的 onClick 方法不会启动 Activity ,它只是创建 Intent 。试试这个:

imgCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, ScanAdaptor.class);
((Activity) context).startActivity(intent);
}
}

关于java - 无法解释的 Android Intent 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31441596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com