gpt4 book ai didi

java - 从弹出窗口上的编辑文本中获取文本

转载 作者:行者123 更新时间:2023-12-01 12:39:33 25 4
gpt4 key购买 nike

我尝试使用输入到 EditText 中的文本,该 EditText 位于 PopupWindow 上。这是我的 PopUpWindow 代码。

public void popupInit() {
View popupView = null;
popupView = inflater.inflate(R.layout.poplayout, null);

popUp = new PopupWindow(popupView, LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
popUp.setFocusable(true);
popUp.setOutsideTouchable(isRestricted());
popUp.setContentView(inflater.inflate(R.layout.poplayout, null, false));
login = (Button) popupView.findViewById(R.id.loginButton);

final EditText username = (EditText) popupView.findViewById(R.id.username);
final EditText password = (EditText) popupView.findViewById(R.id.password);
user_name =username.getText().toString();
pass_word = password.getText().toString();


}

运行时,上面的代码为 user_name 和 pass_word 返回“”,它们是字段字符串。

谢谢。

最佳答案

这是适合您的工作代码,请进行相应更改:

简要说明:

当单击 btnId 时,会打开一个弹出窗口,当您输入用户名和密码并单击登录按钮时,弹出窗口将关闭,您输入的用户名密码将打印在日志中。检查您的 LogCat 以查看您输入的内容。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final Button btn = (Button)findViewById(R.id.btnId);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

LayoutInflater layoutInflater
= (LayoutInflater)getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.popup, null);
final View popupView1 = layoutInflater.inflate(R.layout.popup, null);

final PopupWindow popUp = new PopupWindow(popupView1,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
popUp.setFocusable(true);
popUp.setOutsideTouchable(isRestricted());
Button login = (Button) popupView1.findViewById(R.id.loginButton);
login.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View v) {
popUp.setContentView(popupView1);


final EditText username = (EditText) popupView1.findViewById(R.id.username);
final EditText password = (EditText) popupView1.findViewById(R.id.password);
String user_name =username.getText().toString();
String pass_word = password.getText().toString();
Log.i("info",(user_name+pass_word));
popUp.dismiss();
}});

popUp.showAsDropDown(btn, 50, -30);
}


});

}

要回答您在评论中发布的问题,您的 popupInit() 方法中应该包含如下所示的内容:

public void popupInit() {
final LayoutInflater inflater
= (LayoutInflater)getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
final View popupView = inflater.inflate(R.layout.popup, null);

final PopupWindow popUp = new PopupWindow(popupView,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
popUp.setFocusable(true);
popUp.setOutsideTouchable(isRestricted());

Button login = (Button) popupView.findViewById(R.id.loginButton);
login.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View arg0) {

popUp.setContentView(inflater.inflate(R.layout.popup, null, false));
final EditText username = (EditText) popupView.findViewById(R.id.username);
final EditText password = (EditText) popupView.findViewById(R.id.password);
String user_name =username.getText().toString();
String pass_word = password.getText().toString();
Log.i("Username,password",(user_name+"-->"+pass_word));
popUp.dismiss();
}

});
popUp.showAtLocation(popupView, Gravity.CENTER, 0, 0);
}

关于java - 从弹出窗口上的编辑文本中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25245982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com