2014-03-07 73 views
0

打開多個文本文件,我剛開始進入這個Android開發的東西,通過我自己的,基本閱讀各種書籍和搜索互聯網和我需要的信息的論壇,但似乎我停了下來。我正在嘗試製作一個應用程序,通過它將提示用戶在GridView中顯示圖像列表。點擊圖像後,應用程序將向用戶發送一個活動,該活動將顯示一個有時很短,有時很長的故事,該故事是從位於資產文件夾內的.txt文件讀取的。我可以輕鬆地做到這一點,即。爲每個需要打開的.txt製作一個活動,但是我在gridview中查看了50多個圖像文件,在assets文件夾中查看了50多個.txt文件。所以我想只從2個活動,主要和+1,或儘可能少做這個。下面是我到目前爲止的代碼。安卓:從gridview的

MainActivity.java

public class MainActivity extends Activity{ 

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

    GridView gridview = (GridView) findViewById (R.id.gridv); 
    gridview.setAdapter(new ImageAdapter (this)); 

    gridview.setOnItemClickListener (new AdapterView.OnItemClickListener() { 
     public void onItemClick (AdapterView<?> parent, View v, int position, long id) { 
      Intent i = new Intent (getApplicationContext(), ChronText.class); 
      i.putExtra("id", position); 
      startActivity (i); 
     } 
    }); 
} 

}

ChronText.java

public class ChronText extends Activity { 

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

    Intent i = getIntent(); 
    int position = i.getExtras().getInt("id"); 

    TextView chronview = (TextView) findViewById (R.id.chronview); 
    AssetManager assetManager = getAssets(); 

    InputStream input; 
    try { 
     input = assetManager.open(""); 

     int size = input.available(); 
     byte[] buffer = new byte[size]; 
     input.read(buffer); 
     input.close(); 

     String text = new String (buffer); 
     chronview.setText(text); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

}

ImageAdapter.java

public class ImageAdapter extends BaseAdapter { 

private Context myContext; 

public Integer[] myThumbsId = { 
     R.drawable.breathingspace, 
     R.drawable.particletracks, 
     R.drawable.welcomeparty, 
     R.drawable.thebookofemptiness2of2, 
     R.drawable.uplifted 
}; 


public ImageAdapter (Context c) { 
    myContext = c; 
} 

public int getCount() { 
    return myThumbsId.length; 
} 

public Object getItem (int position) { 
    return myThumbsId [position]; 
} 

public long getItemId (int position) { 
    return 0; 
} 

public View getView (int position, View convertView, ViewGroup parent) { 
    ImageView imageView = new ImageView (myContext); 
    imageView.setLayoutParams(new GridView.LayoutParams(170,111)); 
    imageView.setImageResource(myThumbsId[position]); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    imageView.setPadding(5, 5, 5, 5); 
    return imageView; 
} 

}

的應用程序的工作,但是,我有ChronText.java

 InputStream input; 
    try { 
     input = assetManager.open(""); 

手動輸入文件名所以基本上,我需要手工編寫的文件名被點擊每幅圖像。有沒有辦法自動完成這件事?如果是,如何?我在想的方法是創建一個包含所有文件名的列表,如gridview所包含的,其中包含gridview圖像相應順序的文件,當用戶單擊圖像時,將爲具有文件名列表中與gridview列表中圖像相同的位置。如果有另一種更簡單的方法,請告訴/解釋。如果我的想法很好,請告訴我如何把它放在紙上。我在這個應用程序工作了幾個星期,現在我有點被燒燬了。提前致謝。

回答

0

經過大約一個星期左右的粉碎,我已經得到答案,並完成了應用程序。如果有人願意,我可以顯示結果