0

私のプロジェクトの1つでは、2つのフラグメントを使用しています.1つのフラグメントはアイテムのリストを表示しています.そのため、最初のフラグメントでトピックが選択されたときに、詳細を別のフラグメントで変更する必要があります.データは1つのフラグメントから渡すことができます他にビューが変更されていません。どのメソッドで、2番目のフラグメントのビューを実装して、それに応じて変更できるようにする必要があります。これらの良いチュートリアルまたは例を教えてください。

ここで、Android の例を 1 つ開発する必要があります。アプリを実行する必要があるのは、最初のフラグメントの水平方向のリストビューにカテゴリ名がよく表示されることを意味します。この問題のために。

以下のコードを使用しました:

public class Home extends FragmentActivity{

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

1 番目のフラグメント コード:

public class MainActivity extends Fragment {
static final String URL = "http://dev2.mercuryminds.com/webservices/new_feed_articls.xml";

 static String KEY_CATEGORY = "Categories";

 static final String KEY_TITLE = "Category";
 LazyAdapter adapter;

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.activity_main,
                container, false); 


    final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
    XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // getting XML from URL
        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_TITLE);


        // looping through all song nodes &lt;song&gt;
        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>   ();
            Element e = (Element) nl.item(i);
            map.put( KEY_TITLE,((Element)nl.item(i)).getAttribute("name"));

           // map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
            songsList.add(map);
        }
        HorizontalListView list = (HorizontalListView) view.findViewById(R.id.listView1);
    adapter = new LazyAdapter(getActivity(), songsList);
      list.setAdapter(adapter);

       list.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            HashMap<String, String> map = songsList.get(position);
            Intent in = new Intent();
            in.setClass(getActivity(), SubCate.class);
           // in.putExtra(KEY_TITLE, map.get(KEY_TITLE));

                     startActivity(in); 
        }  

     });
        return view;
    }}

2番目のアクティビティにカテゴリ名を表示するにはどうすればよいですか...これらのコードを教えてください...

編集:

こんにちは、最初のアクティビティのようにコードを変更しました:

   HashMap<String, String> map = songsList.get(position);
            SubCate frag = (SubCate) getFragmentManager().findFragmentById(R.id.frag_2);
            if (frag != null && frag.isInLayout()) {
            frag.setText(getCapt(map));
            }
            }
            private String getCapt(HashMap<String, String> map) {
            if (map.containsValue("notchbolly")) {
            return "dadad";
            }
                return "veeman"; 

次のアクティビティ:

public void setText(String item) {
 TextView view = (TextView) getView().findViewById(R.id.cate);
 view.setText(item);
  }

if (map.containsValue("notchbolly")) で名前を直接言及している間はうまくいきました。ただし、名前を直接言及せずに名前を表示する必要があります。カテゴリをクリックする必要がある場合は、カテゴリ名が次のフラグメントに表示されることを意味します。どのようにできるのか ?????

4

2 に答える 2

0

インターフェイスメカニズムを実装する必要があります。

詳細については、次のリンクを参照してください。

http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity http://developer.android.com/training/basics/fragments/communicating.html

于 2013-02-14T06:01:54.340 に答える