1

Eclipse は呼び出しの問題について私に言い続けます。以下に示すように、これは私が受け取るメッセージです。この問題の解決を手伝ってください。呼び出しの問題を取り除くためにどのコードを配置する必要がありますか。ありがとう。

Warning!: method 'parsepack.xmlparsing.navigationClick(int,int)' not invoked.
Warning!: method 'parsepack.xmlparsing.insert(String,int)' not invoked.

ここに方法がありますnavigationClick()

protected boolean navigationClick(int status, int time)
{
    try
    {
        //navigate here to another screen   
        ui.pushScreen(new ResultScreen()); 
    }
    catch(Exception e)
    {
       System.out.println("Exception:-  : navigationClick() "+e.toString());
    }
    return true;
}

ここに方法がありますinsert()

public void insert(String toInsert, int index) 
{
    listElements.addElement(toInsert);
}

ここにクラスxmlparsing.javaがあります

package parsepack;

import java.io.IOException;
import java.io.InputStream;
import java.util.Vector;

import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.DrawStyle;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.ListField;
import net.rim.device.api.ui.component.ListFieldCallback;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;
import net.rim.device.api.xml.parsers.DocumentBuilder;
import net.rim.device.api.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class xmlparsing extends UiApplication implements ListFieldCallback, FieldChangeListener
{

    public static void main(String[] args)
    {
        xmlparsing app = new xmlparsing();
        app.enterEventDispatcher();
    }


    public long mycolor ;
    Connection _connectionthread;
    private static ListField _list;
    private static Vector listElements = new Vector();
    public MainScreen screen = new MainScreen();
    VerticalFieldManager mainManager;
    VerticalFieldManager subManager;
    UiApplication ui = UiApplication.getUiApplication();


    public  xmlparsing()
    {
        super();
        pushScreen(screen);

        final Bitmap backgroundBitmap = Bitmap.getBitmapResource("blackbackground.png");

        mainManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR )
        {

            public void paint(Graphics graphics)
            {
                graphics.drawBitmap(0, 0, Display.getWidth(),Display.getHeight(),backgroundBitmap, 0, 0);

                super.paint(graphics);
            }

        };

        subManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR )
        {
            protected void sublayout( int maxWidth, int maxHeight )
            {
                int displayWidth = Display.getWidth();
                int displayHeight = Display.getHeight();

                super.sublayout( displayWidth, displayHeight);
                setExtent( displayWidth, displayHeight);
            }
        };


        screen.add(mainManager);

        _list = new ListField()

        {

            public void paint(Graphics graphics)

            {
                graphics.setColor((int) mycolor);
                super.paint(graphics);

            }

        };
        mycolor = 0x00FFFFFF;
        _list.invalidate();
        _list.setEmptyString("* Feeds Not Available *", DrawStyle.HCENTER);
        _list.setRowHeight(50);
        _list.setCallback(this);
        mainManager.add(subManager);
        listElements.removeAllElements();
        _connectionthread = new Connection();
        _connectionthread.start();
    }


    protected boolean navigationClick(int status, int time)
    {
        try
        {
            //navigate here to another screen
            ui.pushScreen(new ResultScreen());                
        }
        catch(Exception e)
        {
            System.out.println("Exception:-  : navigationClick() "+e.toString());                
        }

        return true;
    }



    private class Connection extends Thread
    {
        public Connection()
        {
            super();
        }

        public void run() {
            Document doc;
            StreamConnection conn = null;
            InputStream is = null;
            try {

                conn = (StreamConnection) Connector.open("http://imforchange.org/international-movement-for-change/testing/data.xml"+";deviceside=true");

                DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
                docBuilderFactory.setIgnoringElementContentWhitespace(true);
                docBuilderFactory.setCoalescing(true);
                DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
                docBuilder.isValidating();
                is = conn.openInputStream();
                doc = docBuilder.parse(is);
                doc.getDocumentElement().normalize();
                NodeList list = doc.getElementsByTagName("eventName");
                for (int i = 0; i < list.getLength(); i++)
                {
                    Node textNode = list.item(i).getFirstChild();
                    listElements.addElement(textNode.getNodeValue());
                }

            } catch (Exception e) {
                System.out.println(e.toString());
            } finally {
                if (is != null) {
                    try { 
                        is.close();
                    } catch (IOException ignored) {
                    }
                }
                if (conn != null) {
                    try { 
                        conn.close(); 
                    }
                    catch (IOException ignored) {
                    }
                }    
            } 
            UiApplication.getUiApplication().invokeLater(new Runnable() {
                public void run() {
                    _list.setSize(listElements.size());
                    subManager.add(_list);
                    screen.invalidate();
                }
            });
        }

    }


    public void drawListRow(ListField list, Graphics g, int index, int y, int w)
    {
        String tes = (String)listElements.elementAt(index);
        int yPos = 0+y;
        g.drawLine(0, yPos, w, yPos);
        g.drawText(tes, 5, 15+y, 0, w);
    }


    public Object get(ListField list, int index)
    {
        return listElements.elementAt(index);
    }
    public int indexOfList(ListField list, String prefix, int string)
    {
        return listElements.indexOf(prefix, string);
    }
    public int getPreferredWidth(ListField list)
    {
        return Display.getWidth();
    }
    public void insert(String toInsert, int index) {
        listElements.addElement(toInsert);
    }

    public void fieldChanged(Field field, int context) {


    }
}

結果画面.java

package parsepack;

import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;

public class ResultScreen extends MainScreen {

    public ResultScreen() {
        LabelField resultLabel = new LabelField("Result: ");  
        add(resultLabel);
    }  

}
4

1 に答える 1

1

まず第一に、あなたが見ているそれらのメッセージは警告であり、エラーではありません。警告は必ずしも問題ではありませんが、問題になる場合もあります。この場合、少なくとも最初のメッセージは問題だと思うので、修正する必要があります。

1)まず、navigationClick()方法。コンパイラはnavigationClick()、どのコードからも、またはBlackBerryOSインフラストラクチャからも呼び出されないメソッドの実装があることを通知しています。それはおそらくあなたが望むものではありません。通常、これは、BlackBerryクラスの1つnavigationClick()を作成するクラスでオーバーライドするメソッドです。たとえば、サブクラス。 その場合、ボタンがクリックされたときに呼び出されます。extendsFieldButtonFieldnavigationClick()

ただし、navigationClick()メソッドをメインUIApplicationサブクラスに配置しました。それはあなたが望むものではありません。そのメソッドは、フィールドクラスoverrideのメソッドに必要です。navigationClick()ユーザーがクリックしたときにこのメソッドを呼び出すフィールドがわかりません。ただし、たとえば、次のようなことを行う場合があります。

_list = new ListField()
{
    public void paint(Graphics graphics)
    {
        graphics.setColor((int) mycolor);
        super.paint(graphics);
    }
    protected boolean navigationClick(int status, int time)
    {
        try
        {
            //navigate here to another screen
            ui.pushScreen(new ResultScreen());
        }
        catch(Exception e)
        {
            System.out.println("Exception:-  : navigationClick() "+e.toString());
        }
        return true;
    }
}; 

これによりnavigationClick()、リストがクリックされたときに呼び出され、警告が削除されます。

2)に関する警告についてinsert()は、どこでも使用していないからです。そのメソッドを追加して、xmlparsingクラス外のコードがリストにアイテムを挿入できるようにしたようです。たぶんそれはあなたが望むものですが、あなたはまだそのメソッドを使用するための他のコードを書いていません。私はあなたが少なくともいくつかの選択肢を持っているのを見ます:

  1. insert()必要になるまでメソッドを削除またはコメントアウトします。これにより、警告が削除されます。
  2. このメソッドを使用するコードをさらに追加します。
  3. 警告は無視してください。警告は、使用されていないため、(まだ)必要のないコードがあることを示していることを理解してください。
  4. 警告が問題ではないことがわかっていて、実際の問題を隠すために過度の警告が必要ない場合は、Eclipse設定でこれまたはこれを実行することにより、Javaプログラムで警告を抑制することができます。私は通常これをお勧めしません。通常、警告を非表示にするよりも修正する方が適切です。
于 2012-10-11T21:06:00.113 に答える