2014-11-27 4 views
0

Я очень новичок в разработке Android, так что извините, если я не понимаю, что именно происходит здесь.Не удается решить метод findViewByID

Я создал форму, как видно ниже. Это содержится в shape.xml в вытяжке папке:

<?xml version="1.0" encoding="UTF-8"?> 
<shape 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<solid 
    android:color="@color/lboro_pink"/> 

<stroke 
    android:width="50dp" 
    android:color="@color/lboro_blue"/> 

<padding android:left="1dp" 
    android:top="1dp" 
    android:right="1dp" 
    android:bottom="1dp"/> 

<corners 
    android:bottomRightRadius="7dp" 
    android:bottomLeftRadius="7dp" 
    android:topLeftRadius="7dp" 
    android:topRightRadius="7dp"/> 
</shape> 

В настоящее время в моей activity_main.xml у меня есть этот TextView:

<TextView 
    android:id="@+id/grid_1" 
    android:background="@drawable/shape" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_weight="1" 
    android:text="@string/event_1"/> 

Теперь это моя MainActivity.java:

import android.app.Activity; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.MenuInflater; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.content.res.Resources; 


public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ImageView image = (ImageView) findViewById(R.id.test_image); 

    Resources res = getResources(); 
    Drawable shape = res. getDrawable(R.drawable.shape); 

    TextView tv = (TextView)findViewByID(R.id.grid_1); 
    tv.setBackground(shape); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_activity_actions, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@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(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

Я пытался следовать за документом this, чтобы сделать это, и, используя их код, я просто получаю сообщение об ошибке «Не удается разрешить метод findViewByID». Я искал ответы, но просто не могу понять, что они пытаются объяснить, когда говорит официальный доктор Android.

Все, что я пытаюсь сделать, это применить форму, которую я создал в качестве фона для TextView.

Любая помощь очень ценится. Спасибо :)

ответ

5
TextView tv = (TextView)findViewByID(R.id.grid_1); 

Эта линия ошибочна. Он должен быть

TextView tv = (TextView)findViewById(R.id.grid_1); 
+0

Это приводит в бешенство, я скопировал код прямо из андроида док тоже :(Спасибо! – TheBritishBloke

+0

В дополнение к этому, вы должны проверить завершение вашего IDE, он, вероятно, предложит вам правильный метод –

+0

Я вынужден использовать Android Studio для своего модуля в Uni, что кажется глупой идеей, учитывая, что она все еще в бета-версии, и мы все новичок в Android-разработчике. – TheBritishBloke

Смежные вопросы