AS如何从MainActivity中传一个我从文本框中获取的值,到我的自定义类中

FMChenL 2018-04-13 02:02:11
这个是我定义的类:
public File createImageFile() {

String fileName="";
File mediaStorageDir = new File(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
fileName);
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("----", "failed to create directory");
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String suffix = ".jpg";
File image = new File(mediaStorageDir + File.separator + timeStamp + suffix);
return image;
}



这个是调用后相机的活动: @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
@AfterPermissionGranted(1)
protected void onResume() {
super.onResume();
if (EasyPermissions.hasPermissions(PhotoCaptureActivity.this, perms)) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imgUri = createImageFile();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imgUri));
} else {
ContentValues contentValues = new ContentValues(1);
contentValues.put(MediaStore.Images.Media.DATA, imgUri.getAbsolutePath());
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
}
startActivityForResult(takePictureIntent, REQUEST_CODE);
} else {
EasyPermissions.requestPermissions(this, "", 1, perms);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (REQUEST_CODE == requestCode && resultCode == RESULT_OK) {
Log.i("---success---", imgUri + "");
ArrayList<String> strings = new ArrayList<>();
strings.add(imgUri.toString());
if (photoListener != null)
photoListener.onChoose(strings);
if (waterMarkListener != null) {
WaterMask.WaterMaskParam maskParam = waterMarkListener.onDraw();
Bitmap bitmap = ImageUtil.getBitmap(String.valueOf((imgUri)));
// WaterMask.saveJPGE_After(rotateBitmapByDegree(bitmap, readPictureDegree(String.valueOf(imgUri))),String.valueOf(imgUri));
WaterMask.draw(this, bitmap, String.valueOf((imgUri)), maskParam);
}
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imgUri)));
}
finish();
}
public File createImageFile() {
Intent intent=getIntent();
String cu=intent.getStringExtra("custno");
String fileName="";
File mediaStorageDir = new File(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
fileName);
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("----", "failed to create directory");
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String suffix = ".jpg";
File image = new File(mediaStorageDir + File.separator + timeStamp + suffix);
return image;
}
}
因为我之前用的是下的一个Demo,用了Intent传值到调用相机的活动中,但是传过去之后就会启动调用相机的活动,我只是想把值给传过去,而不是直接传过去了就启动相机,所以就把这个调用相机的活动中的需要获取值的方法createImageFile()单独拿出来,就是最上面的那段代码。但是现在不知道该怎么传值,怎么操作了,求大神指教一波。萌新一个
...全文
1726 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
键盘舞者113 2018-04-19
  • 打赏
  • 举报
回复
引用 7 楼 qq_34991575 的回复:
oj8k了 ~~~~~~~~~
你把项目上传,链接给我,不懂得可以CSDN私信
kingiis 2018-04-19
  • 打赏
  • 举报
回复
如果 存在引用关系 可以通过调用传参即可。 如果存在上下文通用关系 可以拿SharedPreferences 存储获取。
FMChenL 2018-04-16
  • 打赏
  • 举报
回复
oj8k了 ~~~~~~~~~
FMChenL 2018-04-16
  • 打赏
  • 举报
回复
引用 5 楼 qq_36999309 的回复:
你百度一下 android接口回调就OK了。
可以传值过去,但是我要怎么才能从另一个活动中获取Exam()里面的值,在活动中重新实例化获取的就是空值
FMChenL 2018-04-14
  • 打赏
  • 举报
回复
引用 2 楼 qq_36999309 的回复:
通过接口就可以实现 public class Exam implements MainActivity.MainActivityCallback { private String output; public String getOutput(){ return output; } public Exam() { MainActivity.setOnMainActivityListener(this); } @Override public void test(String output) { this.output=output; } } public class MainActivity extends AppCompatActivity { private static MainActivityCallback mCallback; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Exam exam=new Exam(); mCallback.test("随便测试一下"); Log.v("测试",exam.getOutput()); } public static void setOnMainActivityListener(MainActivityCallback callback){ mCallback=callback; } public interface MainActivityCallback{ void test(String output); }
能加下你的QQ什么请教一下吗...没有看得很懂
这个人中暑了 2018-04-14
  • 打赏
  • 举报
回复
通过接口就可以实现 public class Exam implements MainActivity.MainActivityCallback { private String output; public String getOutput(){ return output; } public Exam() { MainActivity.setOnMainActivityListener(this); } @Override public void test(String output) { this.output=output; } } public class MainActivity extends AppCompatActivity { private static MainActivityCallback mCallback; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Exam exam=new Exam(); mCallback.test("随便测试一下"); Log.v("测试",exam.getOutput()); } public static void setOnMainActivityListener(MainActivityCallback callback){ mCallback=callback; } public interface MainActivityCallback{ void test(String output); }
这个人中暑了 2018-04-14
  • 打赏
  • 举报
回复
这个人中暑了 2018-04-14
  • 打赏
  • 举报
回复
你百度一下 android接口回调就OK了。
FMChenL 2018-04-13
  • 打赏
  • 举报
回复
其实我就是想把主界面文本框中获取的值给传到调用相机的这个活动中,但是不启动这个活动,只是把值给传过去; 或者有没有方法可以把主界面文本框中获取的值给传到自定义类中,这样我就只需要直接调用这个类的中的方法就行了。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧