Android中带有按钮和文本字段的弹出窗口
想知道我的代码出了什么问题。弹出窗口可以显示简单的文本,但当我尝试添加两个按钮和三个编辑字段之类的复杂内容时,它就不起作用了。我的布局在requestPane线性布局中,当我实现类似setContentView(layoutRequestPane)的东西时,它会阻止并退出应用程序。 如何在弹出窗口中显示活动按钮和活动字段Android中带有按钮和文本字段的弹出窗口,android,button,textfield,popupwindow,Android,Button,Textfield,Popupwindow,想知道我的代码出了什么问题。弹出窗口可以显示简单的文本,但当我尝试添加两个按钮和三个编辑字段之类的复杂内容时,它就不起作用了。我的布局在requestPane线性布局中,当我实现类似setContentView(layoutRequestPane)的东西时,它会阻止并退出应用程序。 如何在弹出窗口中显示活动按钮和活动字段 import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import androi
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
PopupWindow popUp;
LinearLayout layout;
TextView tv;
EditText textEdit;
LayoutParams params;
LinearLayout mainLayout, layoutRequestPane;
Button but;
boolean click = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
popUp = new PopupWindow(this);
layout = new LinearLayout(this);
layoutRequestPane=new LinearLayout(this);
mainLayout = new LinearLayout(this);
tv = new TextView(this);
textEdit=new EditText(this);
but = new Button(this);
but.setText("Click Me");
setContentView(R.layout.activity_main);
but.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (click) {
popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 200, 50);
popUp.update(0, 50, 900, 80);
click = false;
} else {
popUp.dismiss();
click = true;
}
}
});
params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
layoutRequestPane=(LinearLayout)findViewById(R.id.requestPaneLayout);
layout.setOrientation(LinearLayout.VERTICAL);
tv.setText("Hi this is a sample text for popup window");
textEdit.getText();
layout.addView(tv, params);
popUp.setContentView(layout);
// popUp.showAtLocation(layout, Gravity.BOTTOM, 10, 10);
mainLayout.addView(but, params);
setContentView(mainLayout);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}看起来你是Android的初学者(如果不是,我道歉),所以我建议你做几件事: 1-仔细阅读一些关于布局和活动等的教程 2-使用xml构建第一个UI。当您对它的工作方式有了一个很好的了解后,就可以开始以编程方式创建/处理布局和视图 此外,乍一看: 1-通过(LinearLayout)findViewById(R.id.RequestPanelLayout)覆盖LayoutRequestPanel-确保布局不为空,并且确实是您期望的布局 2-调用setContentView两次。
很多不必要的事情正在发生。试着在那里点些菜。橘子,谢谢你的回复。我是一个初学者,这是真的,但我从朋友那里得到了一些建议,从一些特定的项目开始,从网络上获取一些类似的代码,并尝试调整它。他说这应该是最好的学习方式。阅读书籍和编写书籍示例没有太多用处。好的教程将始终包含帮助您的代码。比如,看看沃格拉。此外,正如我所说,使用xmls构建您的第一个UI。在这里,你试图通过编程来膨胀和添加它们,这不那么简单,而且-依我看-在编写第一个应用程序时并不理想。优秀的网站Tangerine,thanx。。。希望能找到我需要的东西。