小编Man*_*nos的帖子

不兼容的类型推断类型不符合等式约束

所以我有一个模特Model.

public class Model { .... } 
Run Code Online (Sandbox Code Playgroud)

这有两个子类:

public class SubmodelA extend Model { .... }
Run Code Online (Sandbox Code Playgroud)

public class SubmodelB extend Model { .... }
Run Code Online (Sandbox Code Playgroud)

这三个都是在Data课堂上包装的.

public class ApiData<T extends Model> {

    public T data;

}
Run Code Online (Sandbox Code Playgroud)

我的将军response wrapper看起来像这样:

public class ApiResponse<DATA> {

    DATA data;
}
Run Code Online (Sandbox Code Playgroud)

"虚拟"api操作保持不变:

public interface Endpoints {

    Call<ApiResponse<ApiData>> getData();
}
Run Code Online (Sandbox Code Playgroud)

我有一个retrofit2.Callback处理响应的实现:

public class ApiCallbackProxy<T> implements retrofit2.Callback<T> {

    public interface ApiResultListener<RESPONSE_TYPE> {
        void onResult(RESPONSE_TYPE response, ApiError error);
    }

    private ApiResultListener<T> …
Run Code Online (Sandbox Code Playgroud)

java generics retrofit retrofit2

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

NestedScrollViewLayout内的SwipeRefreshLayout内的RecyclerView无法滚动

我有一个折叠工具栏和嵌套滚动视图的活动FrameLayout,我将片段放在其中.最初,我FragmentACardView放入它.

效果很好.当我单击一个按钮时,我将其替换FragmentB为另一个包含RecyclerView的按钮.

当我添加FragmentBI cant滚动到列表的底部.

此视频显示了问题:链接到视频

主机活动布局:

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="340dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="true">


    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed|enterAlwaysCollapsed"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginStart="48dp"
        app:expandedTitleMarginEnd="64dp">

        .........
          ......
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="fill_vertical"
    android:fillViewport="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    >

    <!-- the layout which will be the content of the activity (which will be hosted inside the drawer (NOT the list of the drawer)) -->
    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        >

    </FrameLayout>

</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

FragmentB布局:

<android.support.v4.widget.SwipeRefreshLayout …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-recyclerview

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

Rails - 在选项卡之间同步按钮单击

我有一个带bootstrap-tabs的视图.选项卡是动态生成的.

<%= form_with(:id => 'my-form', model: [:admin, @island], local: true) do |form| %>
  <div class="tab-content bg-light" id="tabs-from-locales-content">

    <%= available_locales.each_with_index do |locale, i| %>
      <div
      class="tab-pane fade <%= 'show active' if i == 0 %>"
      id="<%= locale.downcase %>"
      role="tabpanel"
      aria-labelledby="<%= locale.downcase %>-tab">
        <%= render partial: 'island_form', locals: {counter: i, locale: locale, f: form} %>
      </div>
    <% end %>

  </div>

...
...
Run Code Online (Sandbox Code Playgroud)

选项卡表示应用程序的每个可用本地化.表单的模型包含两个嵌套属性.这些属性1 to many与模型有关系.因此,用户可以从表单中添加多个这些.他们的字段可以动态生成:

(为简单起见,我只在问题中包含一个.这是部分的_island_form.html.erb一部分.)

<div class="form-group ports-div">
  <%= f.label :port %> </br>
  <%= f.fields_for :ports do …
Run Code Online (Sandbox Code Playgroud)

javascript ruby forms jquery ruby-on-rails

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

功能组件上的 React-Redux + Redux-Thunk。从 API 获取数据后更新 UI

我有一个使用 redux 从 api 获取数据的功能组件。

const useFetching = (someFetchActionCreator) => {
    const dispatch = useDispatch();
    useEffect(() => {
        dispatch(someFetchActionCreator());
    }, [])
}
Run Code Online (Sandbox Code Playgroud)

组件:

export function Trips(props) {
    const trips = useSelector(state => state.trips);
    useFetching(fetchTrips)
...
...
}
Run Code Online (Sandbox Code Playgroud)

重击声:

export const fetchTrips = () => (dispatch) =>
    axios.get("/api/v1/trips")
        .then(response => dispatch(addTrips(response.data)))

export const addTrips = trips => ({
    type: ADD_TRIPS,
    payload: trips
})

Run Code Online (Sandbox Code Playgroud)

减速机:

function tripsReducer(state = INITIAL_STATE, action) {
    console.log(action)
    if (action.type === ADD_TRIPS) {
        return Object.assign({}, state, {
            trips: …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux react-redux

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

Material UI + React Form Hook + 多个复选框 + 默认选中

我正在尝试构建一个包含多个“分组”复选框的表单,使用react-form-hook Material UI.

这些复选框是从 HTTP 请求异步创建的。

我想提供一组对象 ID 作为默认值:

defaultValues: { boat_ids: trip?.boats.map(boat => boat.id.toString()) || [] }

此外,当我选择或取消选择一个复选框时,我想将对象ID添加/删除到react-hook-form.

IE。( boat_ids: [25, 29, 4])

我怎样才能做到这一点?

这是我试图重现该问题的示例

加分点,使用 Yup 验证最小选定复选框

boat_ids: Yup.array() .min(2, "")

javascript forms checkbox material-ui react-hook-form

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

谷歌图表和MYSQL

我是PHP和Google图表的新手.我想用它来制作谷歌图表与arduino数据存储在MYSL数据库中.到目前为止,我成功地将数据从arduino插入到mysql数据库,但我遇到了谷歌图表的困难.

这是我的PHP代码:

<?php


  $mysqli =mysqli_connect('localhost', 'root', '', 'Arduino');
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: ".mysqli_connect_error();
}


  $sql = mysqli_query($mysqli, 'SELECT * FROM analoog0');

  if (!$sql) {
  die("Error running $sql: " . mysql_error());
  }



  $results = array();
  while($row = mysqli_fetch_assoc($sql))
{
   $results[] = array(
      'Date' => $row['Date'],
      'Time' => $row['Time'],
      'Temperature' => $row['Temperature']
   );
}
$json = json_encode($results, JSON_PRETTY_PRINT);
echo $json;

?>
Run Code Online (Sandbox Code Playgroud)

这是JSON输出:

[ { "Date": "2013-10-24", "Time": "18:15:49", "Temperature": "24" }, 
{ "Date": "2013-10-24", "Time": "18:16:19", "Temperature": …
Run Code Online (Sandbox Code Playgroud)

html php mysql google-visualization

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

在网格面板中使用键盘箭头移动JButton

我想制作一个可以用网格面板内的键盘箭头移动的JButton.关于如何实现这一目标的任何想法?

这是我到目前为止所做的,但它并没有真正起作用

button.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyPressed(KeyEvent e) {
                int key = e.getKeyCode();
                System.out.println("KEY ^$$#$#$@#$  " + key);
                int position = 0;
                int previousPosition = 0;
                int counter = 0;

                position = Integer.parseInt(button.getName());
                int nextPosition = position;
                if (key == KeyEvent.VK_LEFT) {



                    nextPosition = nextPosition - 1;
                    previousPosition = position;
                    System.out.println("PREVIOUS POSITION: " + position);
                    bt[1].setVisible(false);
                    System.out.println("POSITION: " + position);
                    button.setName("" + nextPosition);
                    bt[nextPosition].add(button);
                }
                else if (key == KeyEvent.VK_DOWN) { …
Run Code Online (Sandbox Code Playgroud)

java animation swing keylistener jbutton

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

从片段替换片段会导致片段内容重叠

我在片段中有一个ListView.当我单击列表上的项目时,我想使用替换"启动"一个新的片段.这是结果.我应该只得到BUTTON:

在此输入图像描述

这是在onItemClick里面:

Fragment nextFrag= new VitaminFragment();
FragmentTransaction transaction = this.getFragmentManager().beginTransaction();

transaction.replace(vitamin_fragment.getId(), nextFrag);
transaction.addToBackStack(null);
transaction.commit();
Run Code Online (Sandbox Code Playgroud)

在VitaminFragment的onCreateView中:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Log.d("created", "vitamin_fragment_2");
    return inflater.inflate(R.layout.supplement_properties_layout, container, false);
}
Run Code Online (Sandbox Code Playgroud)

和VitaminFragment XML(supplement_properties_layout)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button2"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="77dp" />

    <com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_height="48dip" />

    <android.support.v4.view.ViewPager
        android:id="@+id/supplements_properties_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/tabs" />

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

以编程方式创建VitaminWiki的布局:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments

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