摘要
当用户点击该RecyclerView项目时,我想根据存储在BaaS [Sashido](X坐标,Y坐标和标记名称)中的信息为该图像添加标签.但是,我遇到的问题是没有得到这个位置.单击图像时创建一个Toast,它显示与视图本身对应的正确位置.(开头为零,依此类推)
但是,一旦用户点击列表中的另一个项目,如何更新位置,以便与Sashido中数组中的位置对应的标记与该位置匹配RecyclerView,因为此时Sashido类中的第一行是用该行的标签填充所有图像.
我的假设是将位置传递给getTagInformation()方法使用,getLayoutPosition()这样当objects.get(position)调用数组时,它将为Sashido类获得相同的位置,但事实并非如此.我觉得在用户点击新项目后,必须不能正确更新适配器.
onBindViewHolder:
@Override
public void onBindViewHolder(RecyclerViewHolderPreviousPosts holder, int position) {
holder.bind(previousPostsList.get(position), listener);
}
Run Code Online (Sandbox Code Playgroud)
onBind:
void bind(final PreviousPostsDataModel model, final OnItemClickListener listener) { ...
uploadedImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (count == 0) {
imageid = model.getImageId();
Toast.makeText(App.getContext(), "Image ID: " + imageid, Toast.LENGTH_SHORT).show();
Toast.makeText(App.getContext(), "Position: " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
getTagInformation(getLayoutPosition());
} else {
Log.e("qwert", "" + imageid);
imageContainer.removeAllViews();
imageContainer.addView(uploadedImage);
count = 0; …Run Code Online (Sandbox Code Playgroud) 我有一个RecyclerView.ViewHolder和RecyclerView.Adapter,我需要在点击项目后,然后将有关此项目的信息发送给另一个Activity.
PlacesAdapter.java
public class PlacesAdapter extends RecyclerView.Adapter<PlacesViewHolder> {
private PlacesActivity placesActivity;
Context context;
private int position;
List<Places> places;
public PlacesAdapter(List<Places> places) {
this.places = places;}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public PlacesViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.places_view, viewGroup, false);
PlacesViewHolder pvh = new PlacesViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(PlacesViewHolder personViewHolder, int i) {
personViewHolder.name.setText(places.get(i).name);
personViewHolder.address.setText(places.get(i).address);
Picasso.with(personViewHolder.itemView.getContext())
.load(places.get(i).photo)
.into(personViewHolder.getPhoto());
}
@Override
public int getItemCount() {
return places.size();
}
} …Run Code Online (Sandbox Code Playgroud) 所以在我的小网站上,我有一个用CSS设计的div,当我用不同的分辨率进行测试时,与我的27英寸屏幕相比,这个盒子在11英寸的小屏幕上显得扭曲.如何在所有显示器尺寸上使我的700像素高200像素宽度div看起来相同
谢谢
这里是DIV的CSS:
text-align:center;
border:3px solid black;
padding-bottom:10px;
height:700px; width:200px;
background-color: white; margin-right: 2cm;
margin-top: -19cm;
margin-left: auto;
Run Code Online (Sandbox Code Playgroud) 我在多个片段中调用方法RecyclerView内部的填充方法,OnCreateView然后将它们定向到为其填充提要的适配器(取决于context的Fragment)。
目前,我正在为用户上传的图片添加标签。这些标签需要一个x和y值(位置),其中是容器的百分比(在上传时设置并保存到 BaaS)。目前,像素百分比公式完美运行,但是当我尝试获取容器的尺寸时,我每次都尝试过returns 0每个选项。
RecyclerViewHolderAllFeeds(View view) {
...
this.imageContainer = (RelativeLayout) view
.findViewById(R.id.image_container);
}
Run Code Online (Sandbox Code Playgroud)
Tag Snippet:(该函数在bind内部调用,将所有标签绑定到上传的图片上)
float x = containerWidth - Float.parseFloat(model.getXpoints(o)) / 100 * containerWidth;
float y = containerHeight - Float.parseFloat(model.getYpoints(o)) / 100 * containerHeight;
Log.e("measuredWidth", "" + containerHeight + "" + containerWidth);
Log.e("getPointX", "" + model.getXpoints(o) + "" + model.getYpoints(o));
Log.e("x", "x" + x + "y" + y);
tag.setX(x);
tag.setY(y);
Run Code Online (Sandbox Code Playgroud)
我现在在 OnCreateViewHolder 方法中设置了 containerWidth …
private OdbcConnection _internalConnection;
public OdbcConnection InternalConnection
{
get
{
if (_internalConnection == null)
{
Open();
}
return _internalConnection;
}
}
public void Open()
{
_internalConnection = new OdbcConnection(CreateConnectionString());
try
{
if (_internalConnection.State == System.Data.ConnectionState.Closed)
_internalConnection.Open();
}
catch
{
throw;
}
}
private string CreateConnectionString()
{
int endpointPort = 5439;
string driver = "{Amazon Redshift (x64)}";
string connectionString = "Driver={0};Server={1};Database={2};UID={3};PWD={4};Port={5};SSL=true;Sslmode=Require";
connectionString = string.Format(connectionString,
driver,
Parameters[ConnectionParameterType.DataSource],
Parameters[ConnectionParameterType.DatabaseName],
Parameters[ConnectionParameterType.UserName],
Parameters[ConnectionParameterType.Password],
endpointPort);
return connectionString;
}
Run Code Online (Sandbox Code Playgroud)
从我服务器上的目录中检索图像时出现问题,所以主要序列是:在页面中(multiupload.php)我添加了输入,允许预览图像,当用户提交时,新目录将创建其会话ID,然后将图像存储在唯一目录中,然后将页面定向到(drag.php).新加载的页面有一个带有不同div的画布,用于控制附加到该画布的过滤器.我的问题在于将指定的s_id作为目录名从一个页面检索到另一个页面.
问:我是否正确检索会话变量?或适当使用它们?
这是multiupload.php上传脚本的必要代码片段.
<?php
$dir_id = session_id(md5(uniqid()));
session_start($dir_id);
$path = "uploads/";
$dir = $path.$dir_id;
$path = $path.$dir_id."/";
if (file_exists($dir)) {
system('/bin/rm -rf ' . escapeshellarg($dir));
} else {
mkdir($path);
chmod($path, 0722);
}
$_SESSION["id"] = $dir_id;
$_SESSION["directory"] = "/" . $dir;
$_SESSION["path_name"] = $path;
?>
Run Code Online (Sandbox Code Playgroud)
我定义目录,整个路径和目录的ID.我想在下一页中检索id,但它没有正确执行.
这是来自drag.php的检索代码
$realPath = 'uploads/'. echo $_SESSION['id'];
$handle = opendir(dirname(realpath(__FILE__)).$realPath;
while($file = readdir($handle)){
if($file !== '.' && $file !== '..'){
echo '<img src="uploads/'.$file.'" border="0" />';
}
}
Run Code Online (Sandbox Code Playgroud)
我的最终结果是我希望在页面上绘制所有图像.现在我希望它们可以在任何地方被绘制,只要它们可见.
如果我的问题不明确,请随时编辑或评论我应该改变的地方.如果您需要更多代码或信息,请告诉我们.
我从这个例子中了解了APK Splits Concept
我试图在我的项目中实现这一点,但只有Drawable文件夹受到影响.我也想拆分Mipmap文件夹.
下面是我的build.gradle文件的代码片段.
android {
. . .
splits {
density {
enable true
reset()
include "mdpi", "hdpi", "ldpi", "xxhdpi", "xxxhdpi"
}
}
. . .
}
Run Code Online (Sandbox Code Playgroud)