小编Zzo*_*okk的帖子

在Python中获取文件修改日期

我使用以下代码来获取文件的修改日期(如果存在):

if os.path.isfile(file_name):
    last_modified_date = datetime.fromtimestamp(os.path.getmtime(file_name))
else:
    last_modified_date = datetime.fromtimestamp(0)
Run Code Online (Sandbox Code Playgroud)

有更优雅/短暂的方式吗?

python

17
推荐指数
1
解决办法
4万
查看次数

为什么片段的onCreate()有时在Activity的onCreate()之前被调用?

最近我遇到了一个难以重现的问题.当片段尝试使用Activity中的数据初始化ArrayAdapter时,会发生NPE.在Activity的onCreate方法中初始化的默认列表:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...
    mAccounts = new ArrayList<>();
    // ...
}

@Override
public List<Account> getAccounts(){
    return mAccounts;
}
Run Code Online (Sandbox Code Playgroud)

该片段还在其onCreate()中创建了一个列表适配器:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRetainInstance(true);
    setHasOptionsMenu(true);

    //mAccountProvider is an interface implemented by the activity
    mAccounts = mAccountProvider.getAccounts();

    mAccountAdapter = new AccountAdapter(getActivity(), R.layout.account_list_item, mAccounts);
}
Run Code Online (Sandbox Code Playgroud)

调用默认的getCount()方法时,NPE发生在AccountAdapter内部.原因是mAccounts为空.问题很少出现,我无法重现它.

如果是有可能,片段的的onCreate()在活动的前所谓的onCreate() ?根据源代码,Fragment的onCreate()在Activity的onCreate()中调度.为什么在Activity的onCreate()完成执行后调用呢?

android android-lifecycle android-fragments

11
推荐指数
4
解决办法
5002
查看次数

在ICS中忽略Android sqlLite ON CONFLICT IGNORE

我有一个简单的地址表,其中包含以下create语句:

"CREATE TABLE " + ADDRESSES_TABLE + " (" +
                KEY_ADDRESS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                KEY_ADDRESS_COUNTRY + " TEXT, " +
                KEY_ADDRESS_CITY + " TEXT, " +
                KEY_ADDRESS_STREET + " TEXT, " +
                KEY_ADDRESS_HOUSE + " TEXT, " +
                KEY_ADDRESS_POSTAL_CODE + " TEXT," +
                "UNIQUE("+KEY_ADDRESS_COUNTRY+","+KEY_ADDRESS_CITY+","+KEY_ADDRESS_STREET+","+KEY_ADDRESS_HOUSE+","+KEY_ADDRESS_POSTAL_CODE +") ON CONFLICT IGNORE)"
Run Code Online (Sandbox Code Playgroud)

当我添加重复记录时,insert()metod返回-1而不是现有行的id.

该问题仅在4.0+上可重现.该方法在2.2和2.3.3上按预期工作.

有没有人遇到同样的问题?

sqlite android

8
推荐指数
1
解决办法
3767
查看次数

滚动图像列表时出现OutOfMemory异常

我有一个包含图像图标的70个文本项目列表(存储在drawables文件夹中).如果我第一次启动应用程序并慢慢滚动列表 - 不会发生异常.

当应用程序第一次启动时,我使用'fling'动作滚动列表时会发生以下异常:

java.lang.OutOfMemoryError: bitmap size exceeds VM budget
 at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
 at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:439)
 at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:322)
 at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:688)
 at android.content.res.Resources.loadDrawable(Resources.java:1710)
 at android.content.res.Resources.getDrawable(Resources.java:585)
Run Code Online (Sandbox Code Playgroud)

之后,如果我使用DDMS终止应用程序,再次启动它并使用'fling'动作滚动它,不会发生异常.因此,只有在第一次安装和启动应用程序时才会出现异常.

这是我用于列表的适配器:

public class AuthorAdapter extends ArrayAdapter<Author> {

private ArrayList<Author> items;
private Context context;
private LayoutInflater inflater;

public AuthorAdapter(Context context, int textViewResourceId, ArrayList<Author> items) {
    super(context, textViewResourceId, items);
    this.items = items;
    this.context = context;
    inflater = LayoutInflater.from(this.context);
}

static class ViewHolder {
    ImageView authorFace;
    TextView authorName;
    TextView authorWho;
}

@Override
public View getView(int position, View convertView, ViewGroup …
Run Code Online (Sandbox Code Playgroud)

android listview out-of-memory

6
推荐指数
1
解决办法
2252
查看次数

在 Kotlin 中使用条件选择排序属性

我正在使用sortedBy()对对象集合进行排序。

由于顺序可能会根据用户的选择而变化,因此我最终得到了以下代码

val sortedList = if (sortingOrder == WordSortingOrder.BY_ALPHA) {
                    list.sortedBy { it.word.value }
                } else {
                    list.sortedBy { it.createdAt }
                }
Run Code Online (Sandbox Code Playgroud)

然后我对排序后的集合执行进一步的操作。我意识到该sortedBy()方法需要返回一个属性。我想知道是否有一种方法可以将排序条件嵌入到一个收集方法链中。

kotlin

6
推荐指数
1
解决办法
1512
查看次数

如何为KMutableProperty参数赋值?

在一个方法中,我希望接收KMutableProperty作为参数并为其赋值.

另一个问题是将参数传递给这种方法的正确方法是什么.

基本上我想有类似的东西:

class MyBinder {
  ...

  fun bind(property: KMutableProperty<Int>): Unit {
     property.set(internalIntValue)
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在另一个类中调用它

  myBinder.bind(this::intProperty)
Run Code Online (Sandbox Code Playgroud)

kotlin

4
推荐指数
1
解决办法
1253
查看次数

aws_cloudwatch_log_resource_policy创建哪些资源?

当我aws_cloudwatch_log_resource_policy在配置文件中使用该文件时,它已成功应用。我期望某个策略出现在Web控制台的IAM->“策略”列表中,但是没有新策略的迹象。

aws_cloudwatch_log_resource_policy创建什么样的资源?

terraform terraform-provider-aws

4
推荐指数
2
解决办法
680
查看次数