【问题标题】:Is there a way to change a TextView based on Text or based on the ActionBar?有没有办法基于 Text 或基于 ActionBar 更改 TextView?
【发布时间】:2017-12-03 17:26:38
【问题描述】:

嗨所以我正在尝试为我正在从事的涉及谷歌云 Api 的项目制作应用程序。基本上,应用程序将扫描游戏的名称(在这种情况下,除了使用游戏作为示例之外,可以是任何东西)并且它移动到的活动将使用基于扫描的游戏名称的文本视图填充。我将在下面提供代码,但基本上我现在所拥有的只是应用程序扫描徽标,它会出现在下一个活动的 ActionBar 中,有没有办法填充我要放置的 TextView根据 Title 返回到 Action 栏?或者有没有办法根据意图中发送的文本进行设置?

标志发件人的代码。这基本上只是意图。变量文本是通过云视觉 API 传入的文本。

 public void run() {
  Toast.makeText(getApplicationContext(),
  text.getText(), Toast.LENGTH_LONG).show();

 Intent intent = new Intent(LogoDetectionActivity.this, GameInfoActivity.class);
 intent.putExtra("TITLE", text.getText());
 startActivity(intent);
}

将新活动中的代码设置为操作栏:

public class GameInfoActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game_info);

    String title = getIntent().getExtras().getString("TITLE");
    getSupportActionBar().setTitle(title);

}

public void goToLogoDetection(View view) {
    Intent intent = new Intent(this, LogoDetectionActivity.class);
    startActivity(intent);
}
}

如果有人可以在这里帮助我,将不胜感激!

编辑:只是因为我似乎造成了一些混乱,我想要的是根据标题更改 TextView 的内容,而不仅仅是将标题更改为 Textview。例如,如果标题与马里奥有关,则文本视图的内容将包括有关马里奥的信息,而不是标题“马里奥”。任何其他游戏都一样。当然,我知道我必须自己编写此文本中的内容,但那是另一个故事。

【问题讨论】:

  • 不清楚您的代码与 Google 愿景有何关联
  • 通过您的编辑,是什么阻止您执行setText(getInformation("Mario")) 之类的方法?
  • 它与 Google Vision 有关,因为它使用 Google vision 来提供文本变量。通过拍摄徽标的照片。我只是没有包含它的代码,因为我认为它有点太长了。至于那个方法,有没有办法根据谷歌视觉返回的“文本”变量来使用这个方法?我问的原因是因为我还是一个初学者,所以我不知道android开发的来龙去脉。
  • 这些是调用方法的 Java 基础。如果您返回一个字符串,您可以在将其应用到 TextView 之前随意操作它
  • 我明白了,虽然您在上面发布了那个方法,但这不会只是将“Mario”这个词返回到 textview 中而不是别的吗?

标签: java android google-cloud-vision


【解决方案1】:

直接使用intent中传入的字符串即可。假设你的 TextView 对象是 textView,那么

textView.setText(title);

无需从操作栏中获取。

【讨论】:

  • 关于那件事,那只是将 Textview 中的文本设置为标题正确吗?我希望它用更多的东西填充 TextView。举个例子,如果标题是“马里奥”,那么 TextView 会说“马里奥是一种动作平台风格的视频游戏,由 xxxx 开发,几乎遍布所有游戏机”之类的东西。如果你明白我的意思。
  • 您可以在标题上放置一个开关盒。就像情况是 mario 一样,您将文本视图填充为 textView.setText(“whatever you want to write”)。
  • 我明白了,你知道我可以参考的任何好的例子吗?或者它究竟是如何格式化的?我想我了解开关盒的工作原理。
  • 我猜你可以实现一个普通的 switch case,如果标题是 mario do textView.setText(“hi i am mario”)。如果是 luigi,请执行 textView.setText(“hi i am luigi”)。我希望你能明白要点。
  • 我有点明白你的意思,我认为它应该至少足以让球滚动。我需要围绕 switch 语句进行思考。但我想我可以尝试足够。谢谢。
【解决方案2】:

我不知道我是否正确理解了这个问题。这能回答你的问题吗?

textView.setText(getSupportActionBar().getTitle());

【讨论】:

  • 现在很遗憾,正如我在对下面评论的回答中所说的那样,我希望它在文本视图中写入的不仅仅是标题。我希望它根据从“文本”变量输入的文本将内容写入文本视图。所以对于马里奥来说是一回事,而对于塞尔达来说则是另一回事。
【解决方案3】:

据我了解您的问题,您想从活动的操作栏中获取标题并希望在 textview 中设置,您可以通过这样做来实现

String actionBarTitle = getSupportActionBar().getTitle() ;
yourTextView.setText(actionBarTitle);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2014-12-25
    • 2012-02-09
    • 2020-11-19
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多