テンプレートの1つから基本的なAndroidスタジオアプリを作成し、onCreateのあらかじめ作成されたハンドラからスレッド(Runnable)を呼び出そうとしています。私がやったのは、Runnableを拡張したクラスを追加してから、そのクラスをハンドラで使用することだけでした。私はコンパイルエラーを取得しています理由を把握することはできません:Androidスタジオのエラーを解決する方法:シンボルメソッドが見つからない
がシンボルメソッドは
を開始見つけることができませんそれが唯一のエラーだとちょうどライン上の
new Thread(example.start());
コードを次のとおりです。
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
static class GetExample implements Runnable
{
public void run()
{
Log.i("GetExample class", "Inside GetExample::run()");
return;
}
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
Log.i("Inside onCreate()", "TestBed -- onClick() invoked");
try
{
GetExample example = new GetExample();
new Thread(example.start());
}
catch (IOException ex)
{
Log.i("Inside onCreate()", "TestBed -- IOException occurred");
}
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
. . .
'スレッド'の 'start()'; 'Runnable'の' run() 'です。 – Makoto
@Makoto - Oracleのこれらのドキュメントは間違っていますか?彼らはstart()を使用します。 https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html – Alyoshak
'start()'を起動している場所を*見てみましょう。 – Makoto