目前我使用HttpClient,HttpPost将数据发送到我的PHP server从Android app,但所有这些方法是在API 22弃用,在API 23取出,那么有什么替代方案呢?
我到处搜索,但没有找到任何东西.
我发现在过滤器上的解决方案ListView,并SearchView在RecyclerView单独的,但我想将它们结合起来.它甚至可能吗?
我实现了一个RecyclerView与SearchView和Filterable; 所有课程来自v7.现在这种行为很烦人.每当键盘启动或关闭时,内容RecyclerView都会变为空白.计数仍然正确,但视图为空.我猜,它与Layout尺寸变化有关.这种行为是正常还是有问题?怎么处理呢?我可以显示代码,但不太清楚哪个部分是相关的,所以告诉我在这里可以添加什么?
我有一个camera2实现。当前的设置是,它使用纹理视图表面来显示实际的相机视图和ImageReader用于捕获图像的表面。
现在我也想捕获预览帧。所以我尝试添加一个新的ImageReader表面来捕获帧。但是当我添加该表面以createCaptureSession请求时,屏幕变为空白。可能出了什么问题?下面是我用来添加曲面的代码createCaptureSession
val surface = preview.surface
?: throw CameraAccessException(CameraAccessException.CAMERA_ERROR)
val previewIRSurface = previewImageReader?.surface
?: throw CameraAccessException(CameraAccessException.CAMERA_ERROR)
val captureSurface = captureImageReader?.surface
?: throw CameraAccessException(CameraAccessException.CAMERA_ERROR)
try {
val template = if (zsl) CameraDevice.TEMPLATE_ZERO_SHUTTER_LAG else CameraDevice.TEMPLATE_PREVIEW
previewRequestBuilder = camera?.createCaptureRequest(template)
?.apply { addTarget(surface) }
?: throw CameraAccessException(CameraAccessException.CAMERA_ERROR)
val surfaces: ArrayList<Surface> = arrayListOf(surface, previewIRSurface, captureSurface)
camera?.createCaptureSession(surfaces, sessionCallback, backgroundHandler)
} catch (e: CameraAccessException) {
throw RuntimeException("Failed to start camera session")
}
Run Code Online (Sandbox Code Playgroud)
ImageReaders的初始化是这样的。
private fun prepareImageReaders() {
val largestPreview = …Run Code Online (Sandbox Code Playgroud) 我有一个RecyclerView和CardView它里面.现在我要做的是Fragment点击CardView 加载一个简单的.我无法使用FragmentManager或SupportFragmentManager执行此操作.请给我一些指示.
我的RecyclerViewAdapder和ViewHolder是......
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private String[] eventName;
private String[] eventBrief;
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName, textViewBrief;
public CardView cardView;
public ViewHolder(View v) {
super(v);
textViewName = (TextView)v.findViewById(R.id.textViewName);
textViewBrief = (TextView)v.findViewById(R.id.textViewBrief);
final Context context = v.getContext();
cardView = (CardView)v.findViewById(R.id.card_view);
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventFragment eventFragment = EventFragment.newInstance();
// Load and view eventFragment here??
}
});
}
}
public RecyclerViewAdapter(String[] eventName, …Run Code Online (Sandbox Code Playgroud) 我在 Kotlin 中使用“CBC”模式和“PKCS5Padding”填充实现了“AES”加密和解密。我注意到解密时cipherInputStream.read(buffer)一次仅读取 512 字节,而不是 8192 字节的完整缓冲区大小。这是为什么?加密时它使用整个缓冲区。
这些是我正在使用的常量,
private val TRANSFORMATION = "AES/CBC/PKCS5Padding"
private var SECRET_KEY_FAC_ALGORITHM = "PBKDF2WithHmacSHA1"
private val SECRET_KEY_SPEC_ALGORITHM = "AES"
private val cipher = Cipher.getInstance(TRANSFORMATION)
private val random = SecureRandom()
private val KEY_BITS_LENGTH = 256
private val IV_BYTES_LENGTH = cipher.blockSize
private val SALT_BYTES_LENGTH = KEY_BITS_LENGTH / 8
private val ITERATIONS = 10000
Run Code Online (Sandbox Code Playgroud)
解密代码
cis = CipherInputStream(input, cipher)
val buffer = ByteArray(8192)
var read = cis.read(buffer)
while (read > -1) {
fos.write(buffer, 0, read)
read = …Run Code Online (Sandbox Code Playgroud) 我有一个SearchView的片段在ActionBar.问题是当我第一次触摸图标时它向左移动(扩展SearchView).然后我必须再次触摸它以获取文本字段.下面的图片将澄清更多.
requestFocusFromTouch();
requestFocus();
setIconifiedByDeafault(false);
setIconified(); //Works but opens keypad even before touching searchview
Run Code Online (Sandbox Code Playgroud)
片段的onPrepareOptionsMenu()和onCreateOptionsMenu():
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_search, menu);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
SearchView searchView = (SearchView)menu.findItem(R.id.search).getActionView();
searchView.setIconified(false);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
mAdapter.getFilter().filter(newText);
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
menu_search.xml
<menu
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"
tools:context=".MainActivity">
<item …Run Code Online (Sandbox Code Playgroud) android ×8
kotlin ×3
searchview ×3
fragment ×2
java ×2
api ×1
class ×1
cryptography ×1
encryption ×1
filter ×1
http-post ×1
public ×1