編輯:Android編程入門
我這次做了一個用android 獲取當前本地文件、文件夾,並顯示在listview上,點擊文件夾,顯示該文件夾下的文件和文件夾,希望各位大蝦們能指出我的錯誤^__^
具體代碼如下:
public class TestFileActivity extends ListActivity {
private ArrayList<String> items = null;
private ArrayList<String> paths = null;
private String rootPath = "/";
private TextView mPath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mPath = (TextView)findViewById(R.id.mPath);
mPath.setTextColor(Color.RED);
getFileDir(rootPath);
}
private void getFileDir(String filePath) {
mPath.setText(filePath);
items = new ArrayList<String>();
paths = new ArrayList<String>();
File file = new File(filePath);
File[] files = file.listFiles();
if(!filePath.equals(rootPath)) {
items.add("Back To " + rootPath);
paths.add(rootPath);
items.add("Back to ../");
paths.add(file.getParent());
}
for(File fileTemp :files) {
items.add(fileTemp.getName());
paths.add(fileTemp.getPath());
}
ArrayAdapter<String>adapter=new ArrayAdapter<String>(Test_fileActivity.this,R.layout.file_now,items);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
File file = new File(paths.get(position));
if(file.canRead()) {
if(file.isDirectory()) {
getFileDir(paths.get(position));
}else {
new AlertDialog.Builder(this)
.setTitle("Message")
.setMessage("["+file.getName() + "] is a file")
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
else {
new AlertDialog.Builder(this)
.setTitle("Message")
.setMessage("操作無效")
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
}
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:id="@+id/mPath"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</ListView>
</LinearLayout>
file_now.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="20px"
android:textSize="14sp"
>
</TextView>
感悟:
嘿嘿,是不是看了這麼多代碼很頭疼哪?不過還好吧,這只是其中的一小部分而已。在這個小測試中,我學到了file.list()是獲取文件下的列表,而file.canOpen()它是判斷是否可以打開,最後的file.getParent()方法是返回上一級。俺學Android將近半年了,學的東西屈指可數。以後可要認真學習道上的真正開發喲!
Android Fragment的生命周期和Activity類似,實際可能會涉及到數據傳遞,onSaveInstanceState
前面幾節,我們重點討論了自定義View的三板斧,這節我們來討論自定義ViewGroup,為什麼要自定義ViewGroup,其實就是為了更好的管理View。 自定義Vie
上節,介紹Material Design 對陰影效果的實現,這節,我們來介紹Android 5.x的著色與裁剪的特性。 Android 5.X 在對圖像的操作上增加更多
此前編譯過Android4.4的源碼,但是現在Android都到了7.0的版本,不禁讓我感歎Google的步伐真心難跟上,趁這周周末時間比較充裕,於是在過去的24小時裡,