0

こんにちは、私はこのアンドロイドに非常に慣れていません..実際には、画面に1つの見出しとその下の説明を表示しようとしています.Galleryviewを使用してそれを行いました.これが正しい方法であるかどうかわかりません..

私の実際のアイデアは..ギャラリービューで画面を次にスワイプすると(見出しと説明が来るはずです)、これはできません..だから、これを行うために次と前のオプションを保持しようとしました..しかし、これもできません行う..私は間違った方法でやっていることを知っています.これを行うための良い方法を提案してください..必要に応じて、より多くの説明をする準備ができています..以下のコードは私がしたことです..

私の活動コード:

public class NewsDescription extends Activity
{
//   private String url = "http://m.indiatoday.in/xml/stories/"+(String)context.getInstance().getAppVariable("storyurl");
     public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.newsdesgallery);            
 Gallery gl=(Gallery)findViewById(R.id.GalleryNewsDesc);
            NewsDescriptionAdapter adapter =new NewsDescriptionAdapter(this);
            gl.setAdapter(adapter);   
}
}

私のアダプタークラス:

public class NewsDescriptionAdapter extends  BaseAdapter
{
    private static Context contxt;


    String[] body= {};//new String[30];
    String[] heading= {};//new String[30];
    NewsDescriptionAdapter(Context conxt)
    {
//      System.out.println("inside cons");
        this.contxt=conxt;
        getelement();
    }

    public void getelement()
    {
//      System.out.println("Inside getElement");
        String[] url=context.getInstance().getselectedUrl();
//      System.out.println("After url");
//      System.out.println("count="+(String)context.getInstance().getAppVariable("count"));
        int count = Integer.parseInt((String)context.getInstance().getAppVariable("count"));
//      System.out.println("count="+count);
//      System.out.println("after count="+url[count]);
        String URL = "http://xxxx.in/xml/stories/"+url[count];  
//      System.out.println("url="+URL);
         TaplistingParser parser = new TaplistingParser();
//          try {
//              url=URLEncoder.encode(url, "UTF-8");
//          } catch (UnsupportedEncodingException e1) {
//              // TODO Auto-generated catch block
//              e1.printStackTrace();
//          }
            URL=URL.replace(" ","");
//          System.out.println("url="+url);
            String xml= parser.getXmlFromUrl(URL);
            Document doc=parser.getDomElement(xml);                 
            NodeList n1 = doc.getElementsByTagName("item");
            body = new String[n1.getLength()];
            heading = new String[n1.getLength()];
            for( int i = 0 ; i < n1.getLength(); i++ )
            {
//              HashMap<String, String> map = new HashMap<String, String>();
                Element e = (Element) n1.item(i);
                body[i]=parser.getValue(e, "body");
                heading[i]=parser.getValue(e, "headline");
//              map.put("Body", parser.getValue(e,"body"));             
//              menuItems.add(map);
            }
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return body.length;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return body[position];
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
    {
        // TODO Auto-generated method stub
//      System.out.println("body="+body[position]);
         if (convertView   == null) 
            {
                //this should only ever run if you do not get a view back            
             LayoutInflater  inflater = (LayoutInflater) contxt
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
             convertView  = inflater.inflate(R.layout.newsdescriptionrow, null); 
            }        
         TextView next =(TextView)convertView.findViewById(R.id.nextnews);
//       final Gallery gal=(Gallery)convertView.findViewById(R.id.GalleryNewsDesc);

         next.setOnClickListener(new View.OnClickListener() 
         {          
            @Override
            public void onClick(View arg0) 
            {
                // TODO Auto-generated method stub
                System.out.println("Inside next");
                int count = Integer.parseInt((String)context.getInstance().getAppVariable("count"));
                count++;
                context.getInstance().setAppVariable("count", Integer.toString(count));     


            }
        });     

         TextView textViewhead = (TextView) convertView
                    .findViewById(R.id.name_DescHeading);
         textViewhead.setText(heading[position]);

             TextView textView = (TextView) convertView
                    .findViewById(R.id.name_Desclabel);
            textView.setText(body[position]);
        return convertView;
    }
}
4

1 に答える 1

0

Android の新しいバージョンでは廃止されているため、ギャラリー ウィジェットは使用しないでください。代わりに、Android サポート jar の ViewPager を使用できます。

ここで例を見つけることができます: https://github.com/nostra13/Android-Universal-Image-Loader

上記のコードで ImagePagerActivity を探してください。説明用のイメージ ビューとテキスト ビューを含むカスタム セルを作成できます (item_pager_image xml を変更します)。それがどうなるか教えてください。

于 2012-12-07T06:34:40.550 に答える