Как конкретно запустить "хипстерскую" чистую Java-программу в Android Studio?

Я собираюсь разработать приложение для внутренней навигации с помощью студии Android, используя эту библиотеку «Hipster». Hipster предоставляет несколько алгоритмов для поиска и вычисления кратчайшего пути. В моем случае это алгоритм кратчайшего пути Дейкстры.

в Hipster есть упоминание: «Это чистая библиотека Java». Я использую эту библиотеку в Eclipse, и она отлично работает.

мой вопрос,

Я новичок в Android и Android Studio, я пытался реализовать этот код и в Android Studio, но, похоже, он не работает. Я использовал образцы, предоставленные авторами библиотеки.

и я использовал эту зависимость Gradle:

 implementation 'es.usc.citius.hipster:hipster-core:1.0.1'

Официальный сайт - http://www.hipster4j.org/
Github - https://github.com/citiususc/hipster

Я использовал этот пример:

https://github.com/citiususc/hipster/blob/1.0.X/hipster-examples/src/main/java/es/usc/citius/hipster/examples/UndirectedGraphSearchExample.java

Я поместил эту строку, чтобы показать результат в моем приложении для Android, а не в System.out.print.

  Toast.makeText(getApplicationContext(), Hipster.createDijkstra(p).search('L'),Toast.LENGTH_LONG).show();

но эта строка выделена, и когда я наводю указатель мыши, Android Studio говорит

 Cannot resolve method 'makeText(android.content.Context, es.usc.citius.hipster.algorithm.Algorithm.SearchResult, int)  

Вот мой MainActivity.java

 package com.example.ireshan.indoor_navigation;

 import android.content.Context;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.util.Log;
 import android.widget.TextView;
 import android.widget.Toast;

 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;

 import es.usc.citius.hipster.algorithm.Hipster;
 import es.usc.citius.hipster.algorithm.Algorithm;
 import es.usc.citius.hipster.graph.GraphBuilder;
 import es.usc.citius.hipster.graph.GraphSearchProblem;
 import es.usc.citius.hipster.graph.HipsterDirectedGraph;
 import es.usc.citius.hipster.graph.HipsterGraph;
 import es.usc.citius.hipster.model.problem.SearchProblem;

 public class Find_Shortst_Path extends AppCompatActivity {
      Context context = getApplicationContext();
      @Override
      protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_find__shortst__path);
            TextView helloTextView = (TextView)findViewById(R.id.myTextView);

    HipsterGraph<String,Double> graph =
            GraphBuilder.<String,Double>create()
                    .connect("A").to("B").withEdge(2d)
                    .connect("A").to("C").withEdge(2d)
                    .connect("A").to("D").withEdge(2d)
                    .connect("B").to("E").withEdge(5d)
                    .connect("B").to("F").withEdge(10d)
                    .connect("B").to("G").withEdge(5d)
                    .connect("B").to("H").withEdge(10d)
                    .connect("C").to("I").withEdge(5d)
                    .connect("C").to("J").withEdge(10d)
                    .connect("C").to("K").withEdge(5d)
                    .connect("K").to("L").withEdge(5d)

                    .createUndirectedGraph();


    SearchProblem p = GraphSearchProblem
            .startingFrom("A")
            .in(graph)
            .takeCostsFromEdges()
            .build();


    //Toast.makeText(context, Hipster.createDijkstra(p).search('L').toString(),Toast.LENGTH_LONG).show();
    helloTextView.setText(String.valueOf(Hipster.createDijkstra(p).search('L')));

}
}

Как я могу решить эту проблему? Я собираюсь найти кратчайший путь для действий в торговом центре, например, найти какой-нибудь предмет и добраться до него, используя кратчайший путь. Если вы знаете какой-либо другой способ, он мне поможет.

Проблема не в библиотеке. Это с параметром, переданным методу Toast.makeText()

user7571182 20.05.2018 05:50

@ Mandy8055 Можешь объяснить, дружище?

Ireshan M Pathirana 20.05.2018 05:51

Ожидается, что по второму параметру будет String, но он не обнаружит того же

user7571182 20.05.2018 05:53

@ Mandy8055 Что мне делать?

Ireshan M Pathirana 20.05.2018 05:54

попробуйте добавить к нему метод .toString(). Например: Hipster.createDijkstra(p).search('L').toString(), а затем проверьте его и дайте мне знать !!!

user7571182 20.05.2018 05:56

@ Mandy8055 Уважаемый, на этот раз он говорит - Непроверенный вызов 'search (S)' как член необработанного типа 'es.usc.citius.hipster.algorithm.Algorithm' less ... (Ctrl + F1) Сигнализирует о местах, где компилятор выдает непроверенное предупреждение, например: void f (HashMap map) {map.put ("key", "value"); } Подсказка: Pass -Xlint: не отмечен в javac, чтобы получить более подробную информацию.

Ireshan M Pathirana 20.05.2018 06:05

Это не проблема !!! Просто проблема с реализацией вашего API !!!! Просто проверьте, какой тип возвращаемого значения имеет метод Hipster.createDijkstra(p).search('L'), и попробуйте сохранить его в переменной того же типа. Ваша работа сделана

user7571182 20.05.2018 06:08

Попробуйте распечатать результат на textView. Например: textView = (TextView)findViewById(R.id.myTextView); textView.setText(String.valueOf(Hipster.createDijkstra(p).se‌​arch('L')));.

user7571182 20.05.2018 06:18

@ Mandy8055 Вышеупомянутое решение не сработало. Я обновляю свой вопрос, вызывая MainActivity.java

Ireshan M Pathirana 20.05.2018 07:18

Спасибо @ Mandy8055, вы правы !! еще раз спасибо.

Ireshan M Pathirana 20.05.2018 12:47
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
10
179
1

Ответы 1

Я определил,

  Hipster.createDijkstra(p).search("L").getOptimalPaths();

вывод - это список, когда я использую

 .getOptimalPaths();. // Dijkstra's algorithms out put as shortest path

Моя цель заключалась в том, чтобы получить только оптимальный путь, а не весь результат, генерируемый

  Hipster.createDijkstra(p).search("L")

затем я вставил этот вывод в "Список"

  List ab= Hipster.createDijkstra(p).search("L").getOptimalPaths();
  helloTextView.setText(ab.get(0).toString());

И я отправляю вывод в TextViwe. Работает нормально на Andoid

используйте эту зависимость

implementation 'es.usc.citius.hipster:hipster-core:1.0.1'

Другие вопросы по теме