現在、ListFragment 内の項目を検索して返すアプリがあります。クリックすると、新しいアクティビティが次のようなものを使用して開始されるように、各 ListFragment をクリック可能にしたいと考えています。
public void onListItemClick(ListView listView, View view, int position, long id) {
Intent i = new Intent(this, PlaceView.class);
startActivity(i);
//eventually data from the List will be passed to the new Activity...
}
クリック可能にする必要がある ListFragment を開始するクラスは次のとおりです。
public class ResultsView extends FragmentActivity {
private ArrayAdapter<String> mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results_view);
//Receive searchTerm from MainActivity
Intent intent = getIntent();
String searchTerm = intent.getStringExtra(MainActivity.SEARCH_TERM);
mAdapter = new ArrayAdapter<String>(this, R.layout.item_label_list);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ListFragment list = new ListFragment();
ft.add(R.id.fragment_content, list);
// Let's set our list adapter to a simple ArrayAdapter.
list.setListAdapter(mAdapter);
FactualResponderFragment responder = (FactualResponderFragment) fm.findFragmentByTag("RESTResponder");
if (responder == null) {
responder = new FactualResponderFragment();
ft.add(responder, "RESTResponder");
}
Bundle bundle = new Bundle();
bundle.putString("search_term", searchTerm);
responder.setArguments(bundle);
ft.commit();
}
public ArrayAdapter<String> getArrayAdapter() {
return mAdapter;
}
public void onListItemClick(ListView listView, View view, int position, long id) {
Intent i = new Intent(this, PlaceView.class);
startActivity(i);
}
だから私の質問は:
onListItemClick()
1)を使用している で使用するには、 をどのようにセットアップすればよいListFragment list
ですか?
2)などListView
に関連する XML 属性はありませんonClick
。それは問題ではありませんか?
3) 、およびその他の該当するものはどこonListItemClick()
にonItemClickListener()
ありますか?
ご協力いただきありがとうございます。
編集:
Pramod のアドバイスに従って、 class: を作成ListFragmentClickable extends ListFragment
し、次のものを入力しました。
@Override
public void onListItemClick(ListView listView, View view, int position, long id) {
Intent i = new Intent(this, PlaceView.class);
startActivity(i);
}
Eclipse は、それnew Intent(this, PlaceView.class)
は許可されておらず、私が言えることはIntent i = new Intent();
. エラーは「コンストラクターの Intent(ListFragmentClickable, Class) が未定義です」です。Eclipseが提案したようにインテントをインスタンス化してから追加しようとしましi.setClass(this, PlaceView.class)
たi.setClassName(this, PlaceView.class)
が、同じエラーが発生したため機能しませんでした。
1) このエラーを回避し、計画どおりにメソッドをオーバーライドするにはどうすればよいですか?
2)それができず、 を使用する必要がある場合Intent i = new Intent();
、どのクラスを目指しているのかを意図に伝えるにはどうすればよいですか?