インターネット全体でこれを検索しましたが、これを行う方法に関する簡単な説明やチュートリアルはないようです.
基本的に、ユーザーがオブジェクトをクリックして次のレイアウトに移動できる ListView を持つレイアウトが必要です。
つまり、リストビューを他のレイアウトへのリンクとして使用します。
インターネットで見つけたものはすべて、トーストを使用した結果です...しかし、トーストは必要ありません。次のページにリンクしたいと思います。
すべての助けてくれてありがとう。申し訳ありませんが、返信に時間がかかりました。私の解決策は以下の通りです:)
public class FP_WL1_ListView extends Activity {
private ListView lv1;
private String lv_arr[]={"Exercise Bike", "Treadmill", "Cross Trainer", "Squats", "Lunges"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.fitnessprograms_wlday_one);
lv1=(ListView)findViewById(R.id.list);
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
final TextView mTextView = (TextView)view;
switch (position) {
case 0:
Intent newActivity0 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_sp.class);
startActivity(newActivity0);
break;
case 1:
Intent newActivity1 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Treadmill.class);
startActivity(newActivity1);
break;
case 2:
Intent newActivity2 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Crosstrainer.class);
startActivity(newActivity2);
break;
case 3:
Intent newActivity3 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Squats.class);
startActivity(newActivity3);
break;
case 4:
Intent newActivity4 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Lunges.class);
startActivity(newActivity4);
break;
}
}
});
} }
ListView を使用する理由 各行は異なるレイアウトにつながる必要がありますか? その主な利点は、動的に変化するデータを表示することですが、あなたの場合、データは一定ですよね?
垂直 LinearLayout を使用し、プログラムで「リスト要素」を入力して追加します
leListComponent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(YourActivity.this, TargetActivity.class));
}
});
それぞれに。
私がそれを理解できず、アダプターを使用することに満足している場合は、次のようになります。
public class LeWrapper {
private String caption;
private Class<? extends Activity> target;
...POJO here...
}
v.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//get leWrapper object from adapter
startActivity(new Intent(MenuActivity.this, leWrapper.getTarget()));
}
});
しかし、そのちょっとやり過ぎ
リスト行をクリックした後にアクティビティを呼び出す方法の概要を示すコードを次に示します。Toast
うまくいけば、あなたが言及した例を適応させて、これを機能させることができます。Activity
基本的な考え方は、 newでnew を起動することですIntent
。行から必要なデータを .xmllistView
のエクストラとして渡すことができますIntent
。
final static String[] months = new String[] {"Jan","Feb","Mar"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.row_layout, R.id.text1, months);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
int intItem = (int)id;
Intent intent= new Intent(this, SecondaryActivity.class);
intent.putExtra("MONTH", intItem);
startActivity(intent);
}
あなたの質問は少し混乱しているので、私は仮定を立てます。
[LinearLayout1 LinearLayout2 Breadcrumb] は、選択されたときに対応するコンテンツをメイン コンテンツに挿入するナビゲーションまたはタブであると思われますか?
もしそうなら、コンテンツごとにフラグメントを使用することをお勧めします。次に、ナビゲーション/タブをクリックすると、コンテンツをスライドインおよびスライドアウトするフラグメントのアニメーションを実行します。
フラグメントの使用方法については、Google ドキュメントを参照してください: http://developer.android.com/guide/components/fragments.html
スライド アニメーションを実行する方法については、別のスタック オーバーフローの回答を参照してください: Android フラグメントとアニメーション または
http://android-developers.blogspot.com/2011/08/horizontal-view-swiping-with-viewpager.html