【问题标题】:Can someone tell what is wrong with my code.有人可以告诉我的代码有什么问题。
【发布时间】:2018-02-26 08:27:45
【问题描述】:

Onclick 监听器使我的应用程序崩溃。当我将其注释掉时,它运行良好。 在 XML 中,我只有一个编辑框和一个按钮。我也在提取 getText().toString() 输入的文本,是否正确。

public class PnrActivity extends AppCompatActivity {

private String m_PNR,pnr;
final String pnr_url="https://";
final String api_key="";
final String apiFunction ="";
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pnr);
    Log.d("Rail","PNR");
    Button enterButton=(Button) findViewById(R.id.PNR_Button);
    EditText enterPNR=(EditText) findViewById(R.id.EnterPNR);
    Log.d("Rail","PNR");
    m_PNR=enterPNR.getText().toString();
    Log.d("Rail","PNR:"+m_PNR);
    enterButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.d("Rail","onclick");
        }
    });

}

【问题讨论】:

  • 到目前为止你做了什么?
  • 您想在输入的同时获取编辑文本输入数据?
  • 我正在使用输入进行 api 调用,并希望显示从 api 调用中获得的详细信息。
  • 您请求使用用户输入并检索属于该输入的详细信息...您的问题是在输入下显示详细信息??@NamanKumar
  • 事情是,我想在编辑文本中从用户那里获得输入,当他输入详细信息时,我想以相同的布局显示我从 api 调用中获得的详细信息,在下面编辑文本框。意味着当用户来到这个屏幕时,他只会看到用于输入详细信息的编辑框,当按下回车键时,详细信息应显示在其下方。我不想为此创建不同的布局。

标签: android android-layout android-intent android-activity response


【解决方案1】:

使用TextWatcher 或按钮在位于编辑文本下方的文本视图中显示信息

【讨论】:

  • 我正在使用输入进行 api 调用,并希望显示从 api 调用中获得的详细信息。
【解决方案2】:

如果您想显示在​​某些事件(如点击、触摸等)之后输入的相同文本,只需使用,

String x="your api call response";
textview.setText(x);
textview.setVisibility(View.VISIBLE);

如果您想在输入时显示文本,请使用TextWatcher

TextWatcher textWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {}

    @Override
    public void afterTextChanged(Editable s) {
          textview.setText(s.toString());
    }
};
editText.addTextChangedListener(textWatcher);

在同一个 XML 中,拥有所有视图。

【讨论】:

  • 我正在使用输入进行 api 调用,并希望显示从 api 调用中获得的详细信息。
【解决方案3】:

正如您所说“我正在使用输入进行 api 调用,并希望显示从 api 调用中获得的详细信息。”

然后您必须进行 API 调用并使用 editText.setText("value from your response"); 解析响应并为您的字段设置值

如果您在解析回复时遇到任何问题,请在您的问题中添加一些代码。

如果您有可见性问题,请写下:

textView.setVisibility(View.VISIBLE);

【讨论】:

  • 事情是,我想在编辑文本中从用户那里获得输入,当他输入详细信息时,我想以相同的布局显示我从 api 调用中获得的详细信息,在下面编辑文本框。意味着当用户来到这个屏幕时,他只会看到用于输入详细信息的编辑框,当按下输入时,详细信息应该出现在该编辑框下方。我不想为此创建不同的布局。我在解析响应时没有任何问题。
  • 您的意思是说,如果您在编辑文本中输入 Naman,则来自响应的值应该写在您的编辑文本下方?还是 naman 应该被替换为新值?
  • 会有什么回应?是否有任何验证消息或类似的东西?
  • @NamanKumar 正如你所说当他按下回车键时,详细信息应显示在其下方。。我认为你必须在edittext下面有textview,而可见性消失了。 api调用后,将结果设置为textview并使其可见
  • 好的。这就是我的问题所在。不知道我们可以设置可见性。谢了哥们!!谢谢大家。@开发者。我将不得不在 java 文件中设置文本视图的可见性,对吗?你能告诉我它的语法吗?
猜你喜欢
  • 1970-01-01
  • 2020-02-21
  • 2020-10-30
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
相关资源
最近更新 更多