それは非常に簡単です:
これは、リストビューを使用しての活動である、それはOnItemClickListenerを実装します。
public class MainActivity extends Activity implements OnItemClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//* *EDIT* *
ListView listview = (ListView) findViewById(R.id.listView1);
listview.setOnItemClickListener(this);
}
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
Log.i("HelloListView", "You clicked Item: " + id + " at position:" + position);
// Then you start a new Activity via Intent
Intent intent = new Intent();
intent.setClass(this, ListItemDetail.class);
intent.putExtra("position", position);
// Or/And
intent.putExtra("id", id);
startActivity(intent);
}
編集
上記のコードは次のようになりますMainActivity.javaに配置されます。私はクラスの名前をMainActivity
に変更し、contentViewをsetContentView(R.layout.activity_main)
に変更しました。名前はEclipseで新しく作成されたAndroidプロジェクトの名前です。
// *の下にある2つの新しい行も参照してください - リスト内の項目のクリックに対するリスナーを設定します。
あなたactivity_main.xmlは次のようになります。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:entries="@array/sections" >
</ListView>
</RelativeLayout>
をあなたの `の解像度/値のarray.xml(string.xmlをしない)/`フォルダはこの
<resources>
<string-array name="sections">
<item >Pro Constructive</item>
<item >Con Constructive</item>
<item >1st Speaker Cross</item>
<item >Pro Rebbutal</item>
<item >Con Rebuttal</item>
<item >2nd Speaker Cross</item>
<item >Pro Summary</item>
<item >Con Summary</item>
<item >Grand Cross</item>
<item >Pro Final Focus</item>
<item >Con Final Focus</item>
</string-array>
</resources>
のように見えます
注:&をコピーすると、このコードが貼り付けられます。ただし、ListItemDetail.class
をまだ作成していないため、アイテムをクリックするとエラーが発生します。
あなたListItemDetail.java:
public class ListItemDetail extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listitem);
Intent intent = getIntent();
int position = intent.getIntExtra("position", 0);
// Here we turn your string.xml in an array
String[] myKeys = getResources().getStringArray(R.array.sections);
TextView myTextView = (TextView) findViewById(R.id.my_textview);
myTextView.setText(myKeys[position]);
}
}
とそのactivity_listitem.xmlあなたはそれが動作します。このコードを過ぎてコピーする場合
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/my_textview"/>
</LinearLayout>
はここで、これはどのように見えるかの例です。
私は申し訳ありませんが、私はこれに新たなんです。これをstring.xmlまたはactivity_main.xmlに配置しますか?この中の何かを自分の情報で置き換えるのですか? –
私は私の答えを編集しました。あなたが正しい軌道に乗ることを願って:) – Delpes
あなたが言ったように、それは私にエラーを与えますが、私はactivity_listitem.xmlとListItemDetail.javaを追加しました。なぜ私はアプリのFCが、エラーはありません。 –