小编mat*_*tip的帖子

ViewPager中的片段中未触发OnClick事件

我里面有我的碎片ViewPager,我希望其中一个可以点击RelativeLayout.我正在使用数据绑定:

<data>

        <variable
            name="handlers"
            type="com.matip.presenters.MyPresenter" />
</data>

<RelativeLayout
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="@{() -> handlers.onLayoutClick()}">

                ...
                ...
                ...

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我的碎片onCreateView:

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        mBind = DataBindingUtil.inflate(inflater, R.layout.fragment_layout, container, false);
        presenter = new MyPresenter();
        mBind.includedLayout.setHandlers(presenter);
        return mBind.getRoot();
    }
Run Code Online (Sandbox Code Playgroud)

但是onLayoutClick没有被召唤.它与ViewPager有关吗?是否需要点击而不是里面的片段?如果是这样,我该如何解决?

编辑

My ViewPager Adapter:
private class MyViewPagerAdapter extends FragmentStatePagerAdapter {
        public MyViewPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            switch(position) {
                case 0:
                    return MainInfoFragment.newInstance(parkingId);
                case …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

11
推荐指数
1
解决办法
403
查看次数

并不总是触发使用BroadcastReceiver的地理围栏

在我在我的应用程序中使用geofence之前,我使用IntentService作为其回调,一切正常.但现在由于Android 8的变化,我无法再开始这样的服务了.所以现在我使用BroadcastReceiver作为我的Geofencing回调,并且接收器正在启动服务(前景一个用于android 8).但随着这种变化,我注意到地理围栏不再有效.它通常不会被打破,我认为最糟糕的情况是应用程序在前台.最好的情况是应用程序被杀,然后地理围栏正在被攻击.BroadcastReceivers和地理围栏是否有问题,或者我做错了什么?我提供了我的代码:

用于添加地理围栏的通用类:

public abstract class BaseGeofence<T extends BaseGeofenceObject> implements OnSuccessListener<Void>, OnFailureListener {
    protected int RADIUS_IN_METERS = 300;
    protected GeofencingClient client;
    protected Context context;

    public BaseGeofence(Context context) {
        this.client = LocationServices.getGeofencingClient(context);
        this.context = context;
    }

    @SuppressLint("MissingPermission")
    public void addGeofencing(final T object) {
        if (GPSUtils.wasLocationChecked()) {
            Geofence geofence = (new Geofence.Builder()
                    .setRequestId(Integer.toString(getId(object)))

                    .setCircularRegion(
                            object.getLat(),
                            object.getLon(),
                            RADIUS_IN_METERS
                    )
                    .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
                            Geofence.GEOFENCE_TRANSITION_EXIT)
                    .setExpirationDuration(Geofence.NEVER_EXPIRE)
                    .build());
            client.addGeofences(getGeofencingRequest(geofence), getGeofencePendingIntent(object))
                    .addOnSuccessListener(this).addOnFailureListener(this);
        }


    }

    private GeofencingRequest getGeofencingRequest(Geofence geofence) {
        GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
        builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
        builder.addGeofence(geofence);
        return …
Run Code Online (Sandbox Code Playgroud)

android android-geofence

10
推荐指数
1
解决办法
408
查看次数

通过内容解析器添加日历事件后,需要记录时间才能与谷歌日历同步

通过我的应用程序,我使用创建日历事件ContentResolver。活动已成功创建,您可以在系统日历应用程序中看到它们。当用户使用 Google 日历应用程序时会出现问题。有时,事件需要几分钟的时间才会出现。此外,当该事件最终出现在 Google 日历中并且用户将其删除时,它仍然会在系统日历中再次可见几分钟。

在我的应用程序中,我想创建在 caledndar 中打开新创建的事件的意图,但由于该同步问题,它没有被显示,因为它还不可见。另外,在创建新事件之前,我会检查它是否已经存在,并且由于同步,它似乎没有被删除,并且我没有在应该创建新事件时创建新事件。

这是我创建事件的方式:

     fun addEventToCalendar(context: Context,
                           title: String,
                           description: String?,
                           startDateMillis: Long,
                           endDateInMillis: Long,
                           tag: String): Long? {

        val timeZone = TimeZone.getDefault()

        val values = ContentValues().apply {
            put(CalendarContract.Events.DTSTART, startDateMillis)
            put(CalendarContract.Events.DTEND, endDateInMillis)
            put(CalendarContract.Events.TITLE, title)
            description?.let { put(CalendarContract.Events.DESCRIPTION, description) }
            put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.id)
            put(CalendarContract.Events.CALENDAR_ID, getCalendarId(context))
            put(CalendarContract.Events.UID_2445, tag)
        }


        val uri = context.contentResolver.insert(CalendarContract.Events.CONTENT_URI, values)
        return uri?.lastPathSegment?.toLong()
    }

    fun checkIfEventAlreadyExist(context: Context, tag: String): Long? {
        val projection = arrayOf(CalendarContract.Events._ID, CalendarContract.Events.DTSTART, CalendarContract.Events.DTEND, CalendarContract.Events.UID_2445)

        val cursor = context.contentResolver.query(
                CalendarContract.Events.CONTENT_URI, …
Run Code Online (Sandbox Code Playgroud)

android android-contentresolver android-calendar

5
推荐指数
0
解决办法
929
查看次数

组合具有相同高度但最小项目宽度的水平寻呼机项目

我是新作曲家,目前在尝试创建HorizontalPager. 以前显示的是分页器项目填充宽度,然后高度与宽度相同:

Surface(
    modifier = Modifier
        .fillMaxWidth()
        .aspectRatio(1.0f),
    elevation = 16.dp
) { ... }
Run Code Online (Sandbox Code Playgroud)

现在我需要更改它,以便该项目仍然填充宽度但高度包裹内容,然后每个项目的高度都被平均到最高的项目。另外我希望最小高度与宽度相同。

我发现了类似内在测量的东西,但当尝试使用它时什么也没发生:

Surface(
        modifier = Modifier
            .fillMaxWidth()
            .height(IntrinsicSize.Min),
        elevation = 16.dp
    ) { ... }
Run Code Online (Sandbox Code Playgroud)

我也不知道如何将最小高度设置为与宽度相同

android android-jetpack-compose android-jetpack-compose-pager

5
推荐指数
1
解决办法
2071
查看次数

FilenameFilter 显示具有特定扩展名和目录的列表文件

我正在使用 FilenameFilter 类列出目录中具有特定扩展名的所有文件。但我还想列出该目录中的所有目录。我在网上搜索了一下,只找到了如何使用FilenameFilter进行多个扩展名。但是我怎样才能对目录做到这一点呢?

Here is code that I use to list all .txt files:

File[] listOfFiles = folder.listFiles(new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.toLowerCase().endsWith(".txt");
        }
    }); 
Run Code Online (Sandbox Code Playgroud)

Is there even a way to do it via filter or do I have to do it in some other way?

java

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

什么是ojdbc6.jar文件?

对于学校项目,我必须使用数据库来编写Java程序,为此,我必须将ojdbc6.jar导入到该项目文件中。我知道没有它我将无法使用数据库,但我真的不知道这个文件是什么。有人可以解释吗?此类文件的调用方式和用途是什么?

java oracle jar jdbc ojdbc

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

通过数据绑定处理事件与分配给Activity中的方法的onClick

最近我一直在阅读android中的aboout数据绑定.我知道如何在更新ui时有用,但事件处理的优势是什么?在XML中android:onClick为活动中的方法分配似乎与使用较少的代码一样.我什么时候应该使用哪个?

android

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