ボタンのクリックで別のアクティビティを呼び出すにはどうすればよいですか?

タンビル

だから私はいくつかの簡単なバッテリー情報を表示するためにAndroidアプリを作成しようとしています。そして今、私はその情報を取得し、アプリ内にグラフをプロットしたいと思います。私は次のコードを持っています:

public class MainActivity extends ActionBarActivity {
private TextView level,voltage, status1,temp,health1,tech,sour,amp;
Thread myThread;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        level=(TextView)findViewById(R.id.level);
        voltage=(TextView)findViewById(R.id.volt);
        status1=(TextView)findViewById(R.id.stat);
        temp=(TextView)findViewById(R.id.temp);
        health1=(TextView)findViewById(R.id.healt);
        tech=(TextView)findViewById(R.id.tech);
        sour=(TextView)findViewById(R.id.source);
        Button b = (Button) findViewById(R.id.ex);
        Button g = (Button) findViewById(R.id.graphButton);
        amp=(TextView)findViewById(R.id.current);
        b.setOnClickListener(new View.OnClickListener(){
             public void onClick(View v) {
                    // TODO Auto-generated method stub
                    finish();
                  }
        });

        g.setOnClickListener(new View.OnClickListener(){
             public void onClick(View v) {

       //how can i jump to DynamicGraphActivity

             }
        });

        this.registerReceiver(this.myBatteryReceiver,
                 new IntentFilter(Intent.ACTION_BATTERY_CHANGED));


    }

    private BroadcastReceiver myBatteryReceiver
       = new BroadcastReceiver(){

     @SuppressLint("InlinedApi")
    @Override
     public void onReceive(Context arg0, Intent arg1) {
      // TODO Auto-generated method stub

      if (arg1.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){

          int lv = arg1.getIntExtra("level", 0);
       level.setText("Level: "
         + String.valueOf(lv) + "%");

       voltage.setText("Voltage: "
                 + String.valueOf((float)arg1.getIntExtra("voltage", 0)/1000) + "V");
               temp.setText("Temperature: "
                 + String.valueOf((float)arg1.getIntExtra("temperature", 0)/10) + "c");
               tech.setText("Technology: " + arg1.getStringExtra("technology"));

               int status = arg1.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN);
               String strStatus;
               if (status == BatteryManager.BATTERY_STATUS_CHARGING){
                strStatus = "Charging";
               } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING){
                strStatus = "Dis-charging";
               } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING){
                strStatus = "Not charging";
               } else if (status == BatteryManager.BATTERY_STATUS_FULL){
                strStatus = "Full";
               } else {
                strStatus = "Unknown";
               }
               status1.setText("Status: " + strStatus);

               //int source=arg1.getIntExtra("source", BatteryManager.BATTERY_STATUS_UNKNOWN);
               if(Build.VERSION.SDK_INT >= 21){
             BatteryManager battery = (BatteryManager)getSystemService(Context.BATTERY_SERVICE);
             int current=battery.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW);
             int currentAvg=battery.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE);
             int energy=battery.getIntProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
             int capacity=battery.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER);
             int bCapacity=battery.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
             String string1 = "Current: "+ current*1000+" uA"+"\n";
             string1+="Average Current: "+currentAvg+" uA"+"\n";
             string1+="Remaining energy: "+energy+" nWh"+"\n";
             string1+="Capacity: "+capacity+" uAh"+"\n\n";

             amp.setText(string1);
               }


               int health = arg1.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN);
               String strHealth;
               if (health == BatteryManager.BATTERY_HEALTH_GOOD){
                strHealth = "Good";
               } else if (health == BatteryManager.BATTERY_HEALTH_OVERHEAT){
                strHealth = "Over Heat";
               } else if (health == BatteryManager.BATTERY_HEALTH_DEAD){
                strHealth = "Dead";
               } else if (health == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE){
                strHealth = "Over Voltage";
               } else if (health == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE){
                strHealth = "Unspecified Failure";
               } else{
                strHealth = "Unknown";
               }
               health1.setText("Health: " + strHealth);

              }
             }

               };



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

2番目のアクティビティまたはDynamicGraphActivity:

public class DynamicGraphActivity extends Activity {

    private static GraphicalView view;
    private LineGraph line = new LineGraph();
    private static Thread thread;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        thread = new Thread() {
            public void run()
            {
                for (int i = 0; i < 15; i++) 
                {
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    Point p = MockData.getDataFromReceiver(i); // We got new data!
                    line.addNewPoints(p); // Add it to our graph
                    view.repaint();
                }
            }
        };
        thread.start();
    }

    @Override
    protected void onStart() {
        super.onStart();
        view = line.getView(this);
        setContentView(view);
    }

}

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.content.Context;
import android.graphics.Color;

public class LineGraph {

    private GraphicalView view;

    private TimeSeries dataset = new TimeSeries("Rain Fall"); 
    private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();

    private XYSeriesRenderer renderer = new XYSeriesRenderer(); // This will be used to customize line 1
    private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); // Holds a collection of XYSeriesRenderer and customizes the graph

    public LineGraph()
    {
        // Add single dataset to multiple dataset
        mDataset.addSeries(dataset);

        // Customization time for line 1!
        renderer.setColor(Color.WHITE);
        renderer.setPointStyle(PointStyle.SQUARE);
        renderer.setFillPoints(true);

        // Enable Zoom
        mRenderer.setZoomButtonsVisible(true);
        mRenderer.setXTitle("Day #");
        mRenderer.setYTitle("CM in Rainfall");

        // Add single renderer to multiple renderer
        mRenderer.addSeriesRenderer(renderer);  
    }

    public GraphicalView getView(Context context) 
    {
        view =  ChartFactory.getLineChartView(context, mDataset, mRenderer);
        return view;
    }

    public void addNewPoints(Point p)
    {
        dataset.add(p.getX(), p.getY());
    }

}

import java.util.Random;

public class MockData {

    // x is the day number, 0, 1, 2, 3
    public static Point getDataFromReceiver(int x)
    {
        return new Point(x, generateRandomData());
    }

    private static int generateRandomData()
    {
        Random random = new Random();
        return random.nextInt(40);
    }
}

public class Point {

    private int x;
    private int y;

    public Point( int x, int y)
    {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

}

ボタンg内で、DynamicGraphActivityクラスを呼び出して、クラスを呼び出し、いくつかのランダムな値を使用してグラフをプロットしたいと思います。しかし、それは機能していません。ボタンをクリックしても何も起こりません。どうすればこれを修正できますか?

そして、私のもう1つの質問は、これらのコードを使用して、電圧、充電、放電などのバッテリー情報を時間の経過とともにプロットするにはどうすればよいかということです。ありがとうございました

ホイストQ

クラスやアクティビティには違いがあります。アクティビティには視覚的なレイアウトマップがあります。詳細については、このリンクを確認してください。

gボタンクリックリスナー内にこのコードを追加します。

g.setOnClickListener(new View.OnClickListener(){
         public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, DynamicGraphActivity.class);
    startActivity(intent);
      }
    });

また、AndroidManifest.xmlのアプリケーションタグの下にも他のアクティビティを追加する必要があります(新しいアプリを作成する場合は、アプリケーションタグ内にすでにアクティビティタグがありますが、新しいアクティビティにはインテントフィルターは必要ありません)

<activity
    android:name=".DynamicGraphActivity"
 />

両方のアクティビティに同じlayout(main.xml)を使用していることに気づきました。layoutsフォルダーに別のレイアウトを作成し、それをDynamicGraphActivityにマップします。second.xmlを作成するとします。したがって、DynamicGraphActivity oncreate()には次のものがあります。

setContentView(R.layout.second);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ボタンのクリックで別のアクティビティを呼び出すにはどうすればよいですか?

分類Dev

別のクラスからアクティビティの1つのメソッドを呼び出すにはどうすればよいですか

分類Dev

3番目のサブアクティビティから親アクティビティを呼び出すにはどうすればよいですか

分類Dev

別のアクティビティからアクティビティのメソッド呼び出しをトリガーするにはどうすればよいですか?

分類Dev

別のアクティビティを呼び出すように、ListViewの各アイテムをクリック可能にするにはどうすればよいですか?

分類Dev

アクティビティからフラグメント内のメソッドを呼び出すにはどうすればよいですか?

分類Dev

ボレーを使用して、1つのアクティビティで複数のAPIを呼び出すにはどうすればよいですか?

分類Dev

GridViewから別のアクティビティを呼び出すにはどうすればよいですか?

分類Dev

メインアクティビティの2つの別々のボタンを2つの別々のアクティビティにリンクするにはどうすればよいですか?

分類Dev

別のアクティビティの結果に基づいてボタンを有効/無効にするにはどうすればよいですか?

分類Dev

あるアクティビティのメソッドを別のアクティビティで使用するにはどうすればよいですか?

分類Dev

Javaを使用して別のアクティビティのボタンを有効にするにはどうすればよいですか?

分類Dev

写真を撮って別のアクティビティに送信するボタンを作成するにはどうすればよいですか?

分類Dev

2番目のアクティビティのボタンをクリックしながらスピナーを使用して、メインアクティビティの背景色を変更するにはどうすればよいですか?

分類Dev

MainActivityのボタンを再度クリックして2番目のアクティビティを起動した後、2番目のアクティビティの値を保持するにはどうすればよいですか?

分類Dev

EFコアでは、あるクラスにエンティティを追加した後、SaveChanges()を呼び出さずに別のクラスからエンティティにアクセスするにはどうすればよいですか?

分類Dev

ボタンクリックアンドロイドでアクティビティを変更するにはどうすればよいですか

分類Dev

Androidアクティビティのボタンクリックで別のクラスからメソッドを呼び出す方法は?

分類Dev

別のディレクティブ内でLaravelBladeディレクティブを呼び出すにはどうすればよいですか?

分類Dev

あるアクティビティのaddValueEventListenerが別のアクティビティで呼び出されないようにするにはどうすればよいですか?

分類Dev

別のアクティビティからランチャーアクティビティを開始するにはどうすればよいですか?

分類Dev

ラジオボタンのクリックでボタンを非アクティブにするにはどうすればよいですか?

分類Dev

別のアクティビティがスタックにあるかどうかを確認するにはどうすればよいですか?

分類Dev

ボタンがクリックされたときに新しいアクティビティを開くにはどうすればよいですか?

分類Dev

Cardviewをクリックしたときに別のアクティビティの詳細を表示するにはどうすればよいですか

分類Dev

フラグメントにあるアラートダイアログからアクティビティのボタンクリックを検出するにはどうすればよいですか?

分類Dev

2番目のアクティビティで戻るボタンを使用してアプリを閉じるにはどうすればよいですか?

分類Dev

URLにeditTextを使用し、ボタンをクリックして、別のアクティビティでWebビューを開くにはどうすればよいですか。

分類Dev

アクティビティに含まれるフラグメントで初期化されるアダプタのメソッドを呼び出すにはどうすればよいですか?

Related 関連記事

  1. 1

    ボタンのクリックで別のアクティビティを呼び出すにはどうすればよいですか?

  2. 2

    別のクラスからアクティビティの1つのメソッドを呼び出すにはどうすればよいですか

  3. 3

    3番目のサブアクティビティから親アクティビティを呼び出すにはどうすればよいですか

  4. 4

    別のアクティビティからアクティビティのメソッド呼び出しをトリガーするにはどうすればよいですか?

  5. 5

    別のアクティビティを呼び出すように、ListViewの各アイテムをクリック可能にするにはどうすればよいですか?

  6. 6

    アクティビティからフラグメント内のメソッドを呼び出すにはどうすればよいですか?

  7. 7

    ボレーを使用して、1つのアクティビティで複数のAPIを呼び出すにはどうすればよいですか?

  8. 8

    GridViewから別のアクティビティを呼び出すにはどうすればよいですか?

  9. 9

    メインアクティビティの2つの別々のボタンを2つの別々のアクティビティにリンクするにはどうすればよいですか?

  10. 10

    別のアクティビティの結果に基づいてボタンを有効/無効にするにはどうすればよいですか?

  11. 11

    あるアクティビティのメソッドを別のアクティビティで使用するにはどうすればよいですか?

  12. 12

    Javaを使用して別のアクティビティのボタンを有効にするにはどうすればよいですか?

  13. 13

    写真を撮って別のアクティビティに送信するボタンを作成するにはどうすればよいですか?

  14. 14

    2番目のアクティビティのボタンをクリックしながらスピナーを使用して、メインアクティビティの背景色を変更するにはどうすればよいですか?

  15. 15

    MainActivityのボタンを再度クリックして2番目のアクティビティを起動した後、2番目のアクティビティの値を保持するにはどうすればよいですか?

  16. 16

    EFコアでは、あるクラスにエンティティを追加した後、SaveChanges()を呼び出さずに別のクラスからエンティティにアクセスするにはどうすればよいですか?

  17. 17

    ボタンクリックアンドロイドでアクティビティを変更するにはどうすればよいですか

  18. 18

    Androidアクティビティのボタンクリックで別のクラスからメソッドを呼び出す方法は?

  19. 19

    別のディレクティブ内でLaravelBladeディレクティブを呼び出すにはどうすればよいですか?

  20. 20

    あるアクティビティのaddValueEventListenerが別のアクティビティで呼び出されないようにするにはどうすればよいですか?

  21. 21

    別のアクティビティからランチャーアクティビティを開始するにはどうすればよいですか?

  22. 22

    ラジオボタンのクリックでボタンを非アクティブにするにはどうすればよいですか?

  23. 23

    別のアクティビティがスタックにあるかどうかを確認するにはどうすればよいですか?

  24. 24

    ボタンがクリックされたときに新しいアクティビティを開くにはどうすればよいですか?

  25. 25

    Cardviewをクリックしたときに別のアクティビティの詳細を表示するにはどうすればよいですか

  26. 26

    フラグメントにあるアラートダイアログからアクティビティのボタンクリックを検出するにはどうすればよいですか?

  27. 27

    2番目のアクティビティで戻るボタンを使用してアプリを閉じるにはどうすればよいですか?

  28. 28

    URLにeditTextを使用し、ボタンをクリックして、別のアクティビティでWebビューを開くにはどうすればよいですか。

  29. 29

    アクティビティに含まれるフラグメントで初期化されるアダプタのメソッドを呼び出すにはどうすればよいですか?

ホットタグ

アーカイブ