[英]Layout not inflating
下面的代碼用於創建筆記列表。 我想取筆記的標題並添加到動態布局中。 但布局並沒有膨脹。
public class TakeNote extends AppCompatActivity {
List<String> titles = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_take_note);
reader();
LinearLayout layout = (LinearLayout) findViewById(R.id.tn);
try {
addlist(titles, layout);
}
catch(Exception e){
}
}
這將讀取存儲標題的文件...
public void reader(){
try {
Scanner sc = new Scanner(openFileInput("titles.txt"));
while(sc.hasNextLine()){
titles.add(sc.nextLine());
}
sc.close();
}
catch(Exception e){
}
}
這會將標題寫入文件。
public void writer(String title){
try {
PrintStream write = new PrintStream(openFileOutput("titles.txt", MODE_PRIVATE | MODE_APPEND));
write.println(title);
write.close();
}
catch(Exception e){
}
}
ArrayAdapter<String> adap;
private void addlist(List<String> l,LinearLayout layout){
View v = getLayoutInflater().inflate(R.layout.newnote,null);
adap = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, l);
ListView list = (ListView) findViewById(R.id.tit);
try {
list.setAdapter(adap);
}
catch(Exception e){}
layout.addView(v);
}
單擊添加按鈕時,將出現一個自定義輸入對話框以獲取注釋的標題。
public void addnote(View view) {
LayoutInflater layoutInflater = LayoutInflater.from(this);
View promptView = layoutInflater.inflate(R.layout.addworddialog, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
// set prompts.xml to be the layout file of the alertdialog builder
alertDialogBuilder.setView(promptView);
final EditText input = (EditText) promptView.findViewById(R.id.nw);
// setup a dialog window
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("ADD", (dialog, id) -> {
// get user input and set it to result
writer(input.getText().toString());
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create an alert dialog
AlertDialog alertD = alertDialogBuilder.create();
alertD.show();
LinearLayout layout = (LinearLayout) findViewById(R.id.tn);
addlist(titles,layout);
}
}
此外,在整個過程中沒有錯誤。
它只是沒有顯示新的列表布局
alertD.show();
LinearLayout layout = (LinearLayout) findViewById(R.id.tn);
addlist(titles,layout);
Dialog.show
不會阻塞,因此在addlist
時titles
可能不會改變,從而導致您看到的行為。
此外,更改“titles.txt”文件並不意味着使用reader()
讀取的標題列表會更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.