小编Tip*_*pok的帖子

Navigation Drawer 和 android 数据绑定

对不起我的英语不好。我需要使用 Android 数据绑定处理按钮单击。我包含在 content_main.xml 数据绑定中。

    <data>
            <variable
                name="temp"
                type="skubyev.anton.navigationdrawer.DataBindingClass.MainActivityData" />
            <variable
                name="presenter"
                type="skubyev.anton.navigationdrawer.DataBindingClass.MainActivityPresenter"/>
        </data>
....
     <android.support.design.widget.FloatingActionButton
                android:onClick="@{() -> presenter.onShowData(temp)}"
Run Code Online (Sandbox Code Playgroud)

但是 MainActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ContentMainBinding binding = DataBindingUtil.setContentView(this, R.layout.content_main);

        MainActivityPresenter mainActivityPresenter = new MainActivityPresenter(this);
        MainActivityData mainActivityData = new MainActivityData("??? ?????");
        binding.setTemp(mainActivityData);
        binding.setPresenter(mainActivityPresenter);

        setContentView(R.layout.activity_main);
....

 @Override
    public void showData(MainActivityData mainActivityData) {
        String textForRecognition = mainActivityData.getTextForRecognition();
        Toast.makeText(this, textForRecognition, Toast.LENGTH_SHORT).show();
    }
Run Code Online (Sandbox Code Playgroud)

我希望函数showData运行,然后单击 content_main 中的 FloatingActionButton。但是 showData - MainActivity 类中的函数。因此,据我所知,当您单击位于content_main.xml上的按钮时,它不会被调用。我该怎么办?创建一个单独的类 ContentActivity.java 和函数 showData。

我只想让 MainActivity.java 负责处理对 …

java data-binding android navigation-drawer android-databinding

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

Kotlin 将对象转换为另一个对象

http://cm08323.tmweb.ru/android/determinace/json/images.json 我有一些 json 到服务器。

我的数据库类:

@Entity
data class Image(val url: String = "", val urlAnswer: String = "", val race: String = "") : DisplayableItem, Persistable
Run Code Online (Sandbox Code Playgroud)

api接口:

interface ImagesAdi {
    @GET("android/determinace/json/images.json")
    fun getImages(): Single<List<ImagesResponse>>
}
...
class ImagesResponse(
        val images: List<ImageSingle>)

class ImageSingle(val url: String,
            val url_answer: String,
            val race: String)
Run Code Online (Sandbox Code Playgroud)

我用于将ImagesResponse转换为Image 的映射器:

@Singleton
class ChooseRaceMapper @Inject constructor() : (ImageSingle) -> Image {
    override fun invoke(response: ImageSingle): Image = Image(response.url, response.url_answer, response.race)
}
Run Code Online (Sandbox Code Playgroud)

List< ImageSingle …

android json kotlin

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

keyPressEvent没有反应

我正在写QT.OpenGL已连接,工作正常,但事件和keyPressEvent mousePressEvent不响应击键.

class MainWindow : public QGLWidget
{
    Q_OBJECT
    protected:
        void initializeGL(); // ????? ??? ????????????????? opengl
        void resizeGL(int nWidth, int nHeight); // ????? ?????????? ????? ??????? ????????? ??????? ????
        void paintGL(); // ????? ??? ?????? ??????????? ?? ?????
        void paintSun();
        void mousePressEvent(QMouseEvent *mouse);
        void keyPressEvent(QKeyEvent *ke);
public:
    MainWindow(int x, int y,QWidget *parent = 0);
    ~MainWindow();
};

void MainWindow::keyPressEvent(QKeyEvent *ke)
{
    switch (ke->key())
    {
          case Qt::Key_Space://NO REACTION
                View += 1;
                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                paintPlanet();
                break;
    }
    updateGL();
}
Run Code Online (Sandbox Code Playgroud)

c++ opengl events qt

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

继承c ++

我有两节课.

class A:

class B: public A
{
     //new function
     void setHint(...);
}
Run Code Online (Sandbox Code Playgroud)

并有结构数据.

typedef std::shared_ptr<A> window_ptr;
std::stack<window_ptr> m_windowsStack;
m_windowsStack.push(std::make_shared<A>("Hint"));
m_windowsStack.push(std::make_shared<B>("Game"));
Run Code Online (Sandbox Code Playgroud)

并在堆栈中找到函数:

std::shared_ptr<A> WindowManager::findWindow(std::string title)
{
    ... return result;
}
Run Code Online (Sandbox Code Playgroud)

并在堆栈中使用find元素的函数:

auto w = findWindow("Game"); //return element type B 
w->setHint(window);
Run Code Online (Sandbox Code Playgroud)

但事实证明函数findWindow返回type A.我得到错误"'A类'没有名为'setHint'w-> setHint(window)的成员;"

我是否需要将A类中的setHint函数声明为虚函数?如何使变量自动理解它是B类型?

c++ virtual inheritance c++11

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