我有一个类型为my model的ArrayList,它包含3个项目,即ArrayList大小为3.
ArrayList<Model> mModels; // mModels.size() = 3
Run Code Online (Sandbox Code Playgroud)
我必须将此ArrayList复制到另一个ArrayList中,因此为此我创建了另一个相同类型的ArrayList,如下所示.
ArrayList<Model> localModels = new ArrayList<>(mModels.size());
Run Code Online (Sandbox Code Playgroud)
下一步是将数据从成员变量复制到局部变量,因为我不想复制成员变量的引用我已经使用了Collections.copy()
Collections.copy(localModels,mModels);
Run Code Online (Sandbox Code Playgroud)
但是我通过告诉目标大小应该大于源大小来获取ArrayOutOfBoundException.所以我记录了两个可变大小.然后对于成员我得到的大小为3,而localVariable记录的大小为0.
UPDATE
我已经尝试将成员ArrayList复制到本地.但它只复制参考.有没有办法复制数据而不是参考?
我试过这些方法
//1
for(Model model: mModels){
localModels.add(model);
}
//2
for(Model model: mModels){
localModels.add((Model)model.clone());
}
//3
Collections.copy(localModels, mModels);
//4
localModels = (ArrayList<Model>)mModels.clone();
//5
localModels = new ArrayList<>(mModels);
Run Code Online (Sandbox Code Playgroud)
所以我的问题是
1-如何从一个ArrayList复制(值更改不应该反映)值到另一个?
2-为什么java/android总是复制引用
3- 如何使用预定义的大小初始化ArrayList(已经回答)
我正在使用角度js进行应用程序.我使用{{data.content}}方法在页面中绑定内容,这很好用,但加载网页浏览器时在页面中显示相同的代码.
看到我在页面加载时拍摄的屏幕截图
有没有办法在不使用ng-bind方法的情况下清除它?
编辑
我试过这种方法
1-ngded ng-clock用于身体
<body ng-app="MyApp" ng-cloack ng-controller="MyController" >
Run Code Online (Sandbox Code Playgroud)
ng-clock的2 -added css样式
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
Run Code Online (Sandbox Code Playgroud)
但仍然存在同样的问题.
我正在使用chorme和mozilla firefox的最新版本
在我的 android 应用程序中,我使用相机创建图像,为此我使用相机 API,我必须在拍照后显示其缩略图,并且我希望将其保存在另一个文件夹中。所以我对缩略图创建器功能的输出将是图像路径,我期待一个文件输出,它是缩略图路径。我浏览了很多教程和开发人员文档,我找到了很多方法
eg : ThumbnailUtils,..
Run Code Online (Sandbox Code Playgroud)
但所有这些方法都返回位图对象或字节数组,。保存图像缩略图的最佳方法是什么。
public void manageImage() {
/*
other things
*/
Model.addThumnailPath(createThumnail(imageFile));
}
public String createThumnail(File imageFile){
// operations
return thumnailPath;
}
Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序活动布局中,我有一个LinearLayout和RecyclerView,LinearLayout包含一个EditText和TextField,而RecyclerView位于LinearLayout下面.
<LinearLayout
android:orientation="vertical">
<LinearLayout
android:orientation="vertical">
<EditText>
<TextView>
</LinearLayout>
<RecyclerView/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在某些时候,我必须删除RecyclerView上方的LinearLayout.所以我通过给出一些动画效果来隐藏它
LinearLayout.animate().translationY(-LinearLayout.getHeight()).setInterpolator(new DecelerateInterpolator()).alpha(0.0f).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
LinearLayout.setVisibility(View.GONE);
}
}).setDuration(HEADER_HIDING_ANIMATION_DURATION);
Run Code Online (Sandbox Code Playgroud)
当动画结束时,视图设置为GONE.然后下面的RecyclerView跳到顶部,它只是跳转而没有任何动画,所有,有没有办法管理它?布局改变的小型动画师可能对我有所帮助.我试过xml,但它会引发一些错误.
android android-layout layout-animation android-recyclerview
假设我有一个活动,它包含一个TextView.我可以将TextView初始化为成员变量或局部变量.这些与初始化之间有任何记忆明智的区别吗?
示例: 具有本地视图引用的活动:
public class MainActivity extends Activity{
@OVerride
public void onCreate(Bundle b){
TextView textView = (TextView)findViewById(R.id.my_text_view_id);
}
}
Run Code Online (Sandbox Code Playgroud)
成员视图参考的活动:
public class MainActivity extends Activity{
TextView mTextView;
@OVerride
public void onCreate(Bundle b){
mTextView = (TextView)findViewById(R.id.my_text_view_id);
}
}
Run Code Online (Sandbox Code Playgroud) memory android local-variables member-variables android-view
我是 Android 新手。我有一个要求,我有一个字段可以输入一个人的出生日期。成功选择后,我想返回从出生日期到当前日期的总月数。例如,如果我输入出生日期截至2012年10月19日,我想返回36(个月)。我搜索了这个,但没有找到任何适合我的要求的东西。这是我当前返回成功数据的代码,
private void showDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day);
Date date = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
if(System.currentTimeMillis() > date.getTime()) {
edtDate.setText(sdf.format(date));
LocalDate date1 = new LocalDate(date);
LocalDate date2 = new LocalDate(new java.util.Date());
PeriodType monthDay = PeriodType.yearMonthDayTime();
Period difference = new Period(date1, date2, monthDay);
int months = difference.getMonths();
months=months + 1;
System.out.println("16102015:Nunber of Months"+months);
}else{
Toast.makeText(mActivity,getResources().getString(R.string.date_validationmsg),Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在我的应用程序中获取 Google 广告 ID,我已经更新了我的 android studio 和 android SDK。
minSdkVersion 15
targetSdkVersion 27
Current gradle version is : 3.1.3
Google services is : 3.0.0
Google Play Services Version : 11.8.0
android Support Libraries Version : 27.1.1
Run Code Online (Sandbox Code Playgroud)
获取 GAID 时,出现以下错误
错误:包 com.google.android.gms.ads.identifier 不存在
无法找到AdvertisingIdClient类。
我有点卡在这里,请帮助我。谢谢你。
在我的活动中,我定义了3个textView控件.所有那些textView出现在另一个旁边 - 我需要做一些他们总是在相同大小的东西.假设第一个textView控件是小时,第二个textView控件是分钟,第三个textView控件是秒.
所以我想在全屏显示它们,所有textView控件都需要大小相同.
怎么做 ?
我正在制作一个字典应用程序,该数据库包含超过50k字.我AutoCompleteTextView在用户搜索时使用a 来显示单词.我认为加载所有数据并AutoCompleteTextView首先绑定将是一项艰巨的任务,所以我想到了当按键事件发生时加载数据.
为每个按钮按下事件命中数据库也是一个坏主意,因为它很重,所以有没有最佳方法来做到这一点?由于应用程序大小很重要,我不喜欢使用Realm或任何其他数据库.
任何帮助将不胜感激
android ×8
java ×2
android-view ×1
angularjs ×1
arraylist ×1
datetime ×1
html ×1
identifier ×1
javascript ×1
jodatime ×1
jquery ×1
keypress ×1
memory ×1
sqlite ×1
thumbnails ×1