如何运行" hipster" Andoid Studio中的纯Java程序,具体来说?

时间:2018-05-20 03:45:13

标签: java android dijkstra

我将使用Android工作室开发室内导航应用程序" Hipster" library.Hipster为搜索和最短路径计算提供了几种算法。在我的例子中,它是Dijkstra的最短路径算法。

在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')));

}
}

我该如何解决这个问题?我将找到购物中心活动的最短路径,例如找到一些项目并使用最短路径到达它。如果您知道任何其他替代方式,它将对我有所帮助。

1 个答案:

答案 0 :(得分:0)

我确定了,

  Hipster.createDijkstra(p).search("L").getOptimalPaths();
当我使用

时,

输出是一个列表

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

我的目标是获得最佳路径而不是

所产生的整个输出
  Hipster.createDijkstra(p).search("L")

然后我将输出插入&#34; List&#34;

  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'