假設你的文件在SD卡中,並且你的名字和你的按鈕一樣,這應該可以工作。在你的第一個活動中,你可以創建一個公共變量(或者你喜歡Frogatto提到的額外元素,他們真的比我更好),它存儲點擊的按鈕名稱,然後添加它+ 「TXT」。
PS:我花了時間做只是因爲我的好奇心的C這樣的:
public class test extends Activity {
LinearLayout layout;
Button btnarr [] = new Button[50];
int counter = 0,check=0;
protected void onCreate(Bundle savedInstanceState) {
counter=0;
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
layout = new LinearLayout(this);
layout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
layout.setOrientation(LinearLayout.VERTICAL);
File sdcard = Environment.getExternalStorageDirectory();
//Get the text file
File file = new File(sdcard,"yourbuttonname.txt");
//Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
btnarr[counter] = new Button(this);
btnarr[counter].setText(text.toString());
text = new StringBuilder();
counter++;
check++;
}
br.close();
}
catch (IOException e) {
e.printStackTrace();
}
doit();
}
public void doit()
{
counter = 0;
while(counter < check)
{
LinearLayout row = new LinearLayout(this);
row.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
btnarr[counter].setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
row.addView(btnarr[counter]);
layout.addView(row);
counter++;
}
setContentView(layout);
}
}
的test.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
能的數量按鈕更改?如果答案是否定的,只是名稱可以改變,也許你可以做這樣的事情: http://stackoverflow.com/a/12421888/5063263而不是追加文本只是做一個數組的所有按鈕,每次它循環將按鈕的文本設置爲從緩衝讀取器獲得的文本 – ivan
是的,如果名稱數量改變,則按鈕數量改變。所以如果我現在有8個名字,那麼我會有8個按鈕,但明天我可能會有12個名字,所以我會有12個按鈕。 – vbneil54